di: Simone Moretti 17 Febbraio 2010
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.
Guida Windows Azure Code SnippetsLe migliori pratiche per far girare le applicazioni "in the cloud",... |
Guida ASP.NET MVC Best PracticesUn workflow dettagliato e ricco di suggerimenti pratici per... |
Guida ASP.NET Starter KitUn modo semplice per imparare ad utilizzare le tecnologie Microsoft... |
Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.
Iscriviti alla newsletter
|
|
Corso Progettazione database11 Maggio 2012 a Milano |
|
|
Amministratore di Reti Windows Server 200811 Giugno 2012 a Milano |
|
Nessun corso previsto |