Я хочу использовать регулярные выражения внутри маршрута Blazor. Я знаю, что в версии .Net 8 Blazer Web App это возможно, потому что я создал шаблон для этого приложения и там работали регулярные выражения. В основном приложении я использовал Blazer Web Assembly, который обновил до WebApp согласно документации Microsoft. Но эти действия не сработали и когда я использую в маршруте регулярные выражения, получаю вот такую ошибку:
Unhandled exception rendering component: The constraint entry 'doc' - 'regex((.*)(?:\/details)$)' on the route '/{{*doc:regex((.*)(?:\/details)$)}' could not be resolved by the constraint resolver of type 'DefaultInlineConstraintResolver'.
System.InvalidOperationException: The constraint entry 'doc' - 'regex((.*)(?:\/details)$)' on the route '/{{*doc:regex((.*)(?:\/details)$)})}' could not be resolved by the constraint resolver of type 'DefaultInlineConstraintResolver'.
Маршрут выглядит следующим образом:
@attribute [Route(@“/{{*doc:regex((.*)(?:\/details)$)$)}”)]]
@rendermode InteractiveWebAssembly
[Parameter] public string doc { get; set; }
Опять же, этот маршрут работает в шаблоне Blazor.
Скажите, пожалуйста, где я допустил ошибку?
Код Program.cs:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorComponents()
.AddInteractiveWebAssemblyComponents();
builder.Services.AddControllers();
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.UseWebAssemblyDebugging();
}
else
{
app.UseException
Handler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseAntiforgery();
app.MapRazorComponents()
.AddInteractiveWebAssemblyRenderMode()
.AddAdditionalAssemblies(typeof(Client._Imports).Assembly);
app.MapControllers();
app.Run();
Подробнее здесь: https://stackoverflow.com/questions/790 ... or-routing
Использование регулярного выражения в маршрутизации Blazor ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение