È possibile ricostruire un URL estraendo le parti della rotta esistente tramite l'oggetto RouteData
. Per esempio, il seguente renderebbe un URL con il controller e l'azione del percorso attuale:
<%=Url.RouteUrl(new { controller = ViewContext.RouteData.Values["controller"],
action = ViewContext.RouteData.Values["action"] }) %>
per iniziare, si potrebbe andare con qualcosa di simile a un metodo di estensione personalizzata che genera l'URL di una pagina aggiuntiva" "parametro. Regolare, se necessario:
public static string UrlWithPage(this UrlHelper urlHelper, string name, int page)
{
string url = urlHelper.RouteUrl(
new {
controller = urlHelper.RequestContext.RouteData.Values["controller"],
action = urlHelper.RequestContext.RouteData.Values["action"],
id = urlHelper.RequestContext.RouteData.Values["id"],
page = page
}
);
return "<a href=\"" + url + "\">" + name + "</a>";
}
Questa costruirà un collegamento correttamente formattato in base alla configurazione di routing, se la pagina è reale segmento nell'URL o semplicemente aggiunto come un querystring.
fonte
2010-02-11 15:57:55
Il numero di parametri che ho in percorso, non è costante? . Potrei averne 10 o averne solo 1 (id nel tuo esempio). –
Dovrò accettare questo dato che non ci sono altre risposte :) –