Utilizzare parametri opzionali nel routing di Blazor

di Marco De Sanctis, in ASP.NET Core,

Come abbiamo visto nel nostro recente articolo (https://www.aspitalia.com/articoli/asp.net-core3/web-ui-interattive-blazor-server.aspx), in Blazor possiamo specificare la route a cui un component risponde con una sintassi simile a quella di ASP.NET MVC:

@page "/products/{id:int}"
<h1>Product @Id</h1>
Description of this product.
@code {
    [Parameter]  public int Id { get; set; }
}

Alle volte, però, può essere necessario rendere questo parametro opzionale, per esempio perché vogliamo riutilizzare lo stesso componente di Edit di un Product anche per le operazioni di Insert.

Per farlo, è sufficiente aggiungere un'altra route tramite la direttiva @page, priva del parametro Id:

@page "/products"
@page "/products/{id:int}"
<h1>Product @Id</h1>
Description of this product.
@code {
    [Parameter]  public int? Id { get; set; }
}

Come possiamo notare dal codice in alto, abbiamo anche dovuto cambiare il tipo della proprietà Id da int a Nullable per supportare il caso in cui il parametro sia assente dall'URL.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi