ASP.Net  »  Articoli  »  ASP.NET 4 

ASP.NET Routing: URL amichevoli con Web Form 4.0 e Visual Studio 2010

di: Simone Moretti     17 Febbraio 2010

Creare i link associati ai percorsi

Per creare dei link che sfruttino il routing, esistono tre metodi. Uno è quello che abbiamo già utilizzato nel nostro esempio e consiste nell'esplicitare i percorsi:

NavigateUrl="~/dettagliLaurea/INF"
NavigateUrl="~/elencoIscritti/"
NavigateUrl="~/elencoIscritti/FIS/2008"

Nella prima istruzione abbiamo esplicitato nella proprietà NavigateUrl il percorso dettagliLaurea e gli abbiamo passato il valore INF per il parametro laurea.

Nella seconda proprietà NavigateUrl abbiamo il percorso elencoIscritti senza parametri. Per default vengono passati i valori INF a laurea e l'anno corrente a anno.

Nella terza istruzione abbiamo esplicitato il percorso elencoIscritti al quale abbiamo passato i valori FIS per laurea e 2008 per l'anno accademico.

Un secondo modo di associare un percorso ad un link consiste nel far generare automaticamente la URL all'interno dei markup. Vediamo un esempio:

<asp:HyperLink ID="HyperLink4" runat="server"
               NavigateUrl="<%$RouteUrl:laurea=INF%>">
  Dettagli Laurea in Informatica
</asp:HyperLink>
<br />
<asp:HyperLink ID="HyperLink5" runat="server"
               NavigateUrl="<%$RouteUrl:routename=PercorsoIcritti%>">
  Elenco degli iscritti al corso di laurea in Informatica nell'a.a. in corso
</asp:HyperLink>
<br />
<asp:HyperLink ID="HyperLink6" runat="server" 
               NavigateUrl="<%$RouteUrl:laurea=FIS,anno=2008,routename=PercorsoIcritti%>">
  Elenco degli iscritti al corso di laurea in Fisica nell'a.a. 2008
</asp:HyperLink>

Si valorizza la proprietà NavigateUrl usando l'espressione RouteUrl nella quale possiamo esplicitare il nome del percorso e/o i parametri.

Questo metodo presenta un vantaggio: non è necessario andare a modificare gli hyperlink nel caso in cui modifichiamo l'ordine o la posizione dei parametri nei percorsi.

Il terzo modo consiste nell'associare un percorso ad un link da codice. Vediamo un esempio:

using System.Web.Routing;

protected void Page_Load(object sender, EventArgs e)
{
  // altro codice 
  RouteValueDictionary parameters = new RouteValueDictionary {
                                          {"laurea", "FIS" },
                                          { "anno", "2008" }
                                        };

  VirtualPathData vpd = RouteTable.Routes.GetVirtualPath(null,
                                                         "PercorsoIcritti",
                                                         parameters);
  link7.NavigateUrl = vpd.VirtualPath;
}

Per prima cosa dobbiamo importare lo spazio dei nomi System.Web.Routing, dopodiché nel Page_Load creiamo una istanza dell'oggetto VirtualPathData al quale passiamo una istanza dell'oggetto RouteValueDictionary che contiene i parametri del percorso. Infine associamo alla proprietà NavigateUrl di link7 il percorso virtuale appena creato.

Guide ASP.Net

Guida Windows Azure Code Snippets

Le migliori pratiche per far girare le applicazioni "in the cloud",...

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Altre guide

Newsletter @Microsoft Dev

Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Progettazione database

11 Maggio 2012 a Milano
Disponibilità: 6 Posti

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto