Почему моя Blazor EditForm не вызывает OnValidSubmit на маршруте /auth/register?C#

Место общения программистов C#
Anonymous
Почему моя Blazor EditForm не вызывает OnValidSubmit на маршруте /auth/register?

Сообщение Anonymous »

Я создаю приложение Blazor (Razor Components/.NET 8), и у меня есть страница регистрации по адресу /auth/register. Компонент использует EditForm с OnValidSubmit="HandleRegister". Внутри HandleRegister у меня есть Console.WriteLine("HandleRegister CALLED"), и я также вызываю API через внедренный IAuthService.
Проблема: когда я отправляю форму, обработчик никогда не вызывается. В консоли сервера нет сообщений, нет вызовов API, а на вкладке «Сеть» браузера отображается только POST /auth/register с application/x-www-form-urlencoded, как в классической HTML-форме. HTML-форма в DevTools выглядит следующим образом: Похоже, что страница отображается как обычная HTML-форма, а не как Blazor EditForm с интерактивностью.
Некоторые дополнительные сведения:
  • У меня есть такой компонент маршрутизатора:

    Код: Выделить всё

    
    
    
    
    
    
    
    Sorry, there's nothing at this address.
    
    
    
    
    
    
  • Код: Выделить всё

    Program.cs
    использует:

    Код: Выделить всё

    builder`.Services.AddRazorComponents()
    .AddInteractiveServerComponents();
    app.MapRazorComponents()
    .AddInteractiveServerRenderMode();
    
  • Код: Выделить всё

    Register.razor
    — единственный компонент с @page "/auth/register" и содержит EditForm с отправкой .
  • Код: Выделить всё

    MainLayout.razor
    не имеет директивы @page.
  • Я вижу в консоли браузера несколько предупреждений о политике безопасности контента и о расширении браузера (

    Код: Выделить всё

    Unchecked runtime.lastError: A listener indicated an asynchronous response...
    ), но они кажутся несвязанными.
Мои вопросы:
  • При каких условиях Blazor отобразит мою страницу Register.razor как простую HTML-форму () вместо правильной интерактивной формы EditForm, чтобы OnValidSubmit никогда не запускался?
  • Что мне следует проверить, чтобы убедиться, что маршрут /auth/register действительно обслуживается компонентом Blazor, а не какой-либо страницей MVC/Razor или старым артефактом?
  • Есть ли какие-либо CSP или другие проблемы с конфигурацией, которые может помешать Blazor подключить обработчики событий, такие как OnValidSubmit, даже если страница загружается нормально?
Будем признательны за любые рекомендации или конкретные шаги по отладке этого (что проверить в DevTools, структуру проекта или настройку маршрутизации).

Подробнее здесь: https://stackoverflow.com/questions/798 ... ster-route

Вернуться в «C#»