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
Assegnare un valore di default a un parametro di una lambda in C#
Configurare dependabot per aggiornare le dipendenze di terze parti con GitHub Actions
Effettuare chiamate con versioning da Blazor ad ASP.NET Core
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Ottenere il contenuto di una cartella FTP con la libreria FluentFTP
Eseguire le GitHub Actions offline
Miglioramenti agli screen reader e al contrasto in Angular
Eseguire operazioni sui blob con Azure Storage Actions
Eseguire attività pianificate con Azure Container Jobs
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Eseguire una query su SQL Azure tramite un workflow di GitHub