Routing
Server Side
In un’applicazione Blazor Server nel ConfigureServices sono impostati due endpoint:
app.UseEndpoint(ep => {
ep.MapBlazorHub();
ep.MapFallbackToPage("/_Host");
});
Il primo endpoint (Hub
) attiva le connessioni SignalR.
Il secondo endpoint (Fallback
) serve a reindirizzare verso la pagina _Host
tutte le rotte che non sono risolte per le Razor pages e le pagine MVC.
In pratica le pagine Blazor Server possono convivere all’interno di un’eco sistema misto formato da MVC, Razor pages e Blazor pages.
Esempio
Request: localhost/employees
Match per MVC Controller o Razor Pages ?
- Sì => Action method o Razor Page
- No => Fallback Host.cshtml
- Esiste un component Blazor che risolve la rotta?
- Sì => Blazor Component
- No => Blazor 404
- Esiste un component Blazor che risolve la rotta?
Client Side (WebAssembly)
Un’applicazione Client Side non dispone dei Circuits SignalR, quindi non necessita del primo endpoint visto sopra.
Allo stesso modo un’applicazione Client Side non può sfruttare le tecnologie server side come Razor pages o MVC, quindi anche il secondo endpoint non è necessario.