Blazor - Capturer les pages 404 (non trouvées)
Pour capturer toutes les routes qui ne correspondent à aucune page déjà existante, il existe deux techniques :
- App.razor
Cette méthode classique consiste à modifier le balise NotFound de la page App.razor. Cela fonctionne très bien, tant que vous n’avez pas besoin du contenu de la route erronée.
<NotFound>
<LayoutView Layout="@typeof(MainLayout)">
<p>Sorry, there's nothing at this address.</p>
</LayoutView>
</NotFound>
- Page CatchAll.razor.
La seconde manière consiste à créer une page CatchAll.razor (ou tout autre nom) qui intercepte
toutes les routes via @page "/{*Path}"
.
Vous pouvez ensuite tracer la route utilisée et ajouter une illustrations plus agréable
pour l’utilisateur.
@page "/{*Path}"
<h3>404 - Page not found</h3>
Route: @Path
@code {
[Parameter]
public string Path { get; set; }
}
Cette route capture toutes les demandes provenant de la racine, mais également de tous les sous-dossiers.
ⓘ Avec ce code, tous les fichiers (.js, .css, …) seront interceptés. Vous pouvez attraper tous les itinéraires à l’exception des “fichiers statiques” en utilisant la contrainte nonfile.
Example:
@page "/{*Path:nonfile}"