Come sappiamo, nel template di default di Blazor, per creare delle pagine, basti aggiungere un file con estensione .razor all'interno della cartella Pages. Ma come possiamo creare delle aree contestuali, analoghe al concetto di Area di ASP.NET MVC?
In questo script vedremo la procedura per arrivare a ciò, e consentirci dunque di poter suddividere l'applicazione in vari settori, per esempio una parte pubblica e una privata di back-office, ognuna con un layout specifico e regole di autorizzazione differenti.
Partendo da un nuovo progetto Blazor, il primo passo sta nel creare una cartella all'interno di Pages, nella quale creare un file chimato _imports.razor.
Il contenuto di questo file sarà ereditato da tutte le pagine all'interno di questa sottocartella. Per esempio, possiamo specificare un layout differente:
@attribute [Authorize] @layout AnotherAppLayout
Nel nostro caso, tutte le pagine di questa "area" useranno il layout di AnotherAppLayout.razor. Inoltre, abbiamo anche sfruttato l'attributo Authorize per specificare che sarà necessaria l'autenticazione dell'utente per accedere a queste pagine.
A differenza delle Aree di ASP.NET MVC, tuttavia, queste pagine non ereditano il nome dell'area all'interno dell'URL, pertanto sarà nostra responsabilità indicarlo (se vogliamo) nel routing di ogni pagina:
@page "/backoffice/users" ...
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Eseguire operazioni sui blob con Azure Storage Actions
Utilizzare un service principal per accedere a Azure Container Registry
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Routing statico e PreRendering in una Blazor Web App
Generare velocemente pagine CRUD in Blazor con QuickGrid
Eseguire i worklow di GitHub su runner potenziati
Limitare le richieste lato server con l'interactive routing di Blazor 8
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Generare un hash con SHA-3 in .NET
Estrarre dati randomici da una lista di oggetti in C#