Blazor-Server Kann keine Daten senden, wenn sich die Verbindung nicht im Status „Verbunden“ befindet
Posted: 05 Jan 2025, 08:05
In meinem Blazor-Projekt verwende ich zwei _Host.cshtml-Dateien. Die erste ist die Standarddatei _Host.cshtml. Eine andere Methode dient dazu, anonymen Login-Zugriff auf eine bestimmte .razor-Seite zu gewähren. Nehmen wir an, die anonyme Razor-Seite ist x.razor.
x.razor
Erstes Szenario
Ich gehe zur x.razor-Seite ohne Anmeldung. In diesem Fall funktionieren keine der Funktionen in x.razor (z. B. Klicken auf eine Schaltfläche oder Formularvalidierung). Als ich die Entwicklerkonsole überprüfte, sah ich Folgendes:

Zweites Szenario
Ich gehe zur Seite x.razor, nachdem ich mich bei der Blazor-App angemeldet habe . In diesem Fall funktionieren alle Funktionen in x.razor ordnungsgemäß. Und die Entwicklerkonsole hat keine Fehler.
Warum passiert das? Wie bringe ich alle Funktionen von x.razor in den aktiven Zustand?
Standard _Host.cshtml
Andere _Host.cshtml (Wird verwendet, um anonymen Zugriff auf x.razor zu gewähren)
Startup.cs
x.razor
Code: Select all
@page '\PublicRazor\x'
...
Ich gehe zur x.razor-Seite ohne Anmeldung. In diesem Fall funktionieren keine der Funktionen in x.razor (z. B. Klicken auf eine Schaltfläche oder Formularvalidierung). Als ich die Entwicklerkonsole überprüfte, sah ich Folgendes:

Zweites Szenario
Ich gehe zur Seite x.razor, nachdem ich mich bei der Blazor-App angemeldet habe . In diesem Fall funktionieren alle Funktionen in x.razor ordnungsgemäß. Und die Entwicklerkonsole hat keine Fehler.
Warum passiert das? Wie bringe ich alle Funktionen von x.razor in den aktiven Zustand?
Standard _Host.cshtml
Code: Select all
@page "/"
@using Microsoft.AspNetCore.Authorization
@namespace has.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@attribute [Authorize]
@{
Layout = null;
}
has
Code: Select all
@page "/publicrazor"
@using Microsoft.AspNetCore.Authorization
@namespace has.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@attribute [AllowAnonymous]
@{
Layout = null;
}
has
Code: Select all
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapBlazorHub();
endpoints.MapFallbackToPage("/_Host");
endpoints.MapFallbackToPage("~/PublicRazor/{**segment}", "/PublicRazor/_Host");
});