Puede reconstruir una url sacando las partes de la ruta existente por medio del objeto RouteData
. Por ejemplo, la siguiente haría una URL con el controlador y la acción de la ruta actual:
<%=Url.RouteUrl(new { controller = ViewContext.RouteData.Values["controller"],
action = ViewContext.RouteData.Values["action"] }) %>
Para empezar, usted podría ir con algo así como un método de extensión personalizada que genera la URL con una página adicional" "parámetro. Ajuste según sea necesario:
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>";
}
éste construirá de un enlace con el formato adecuado en base a la configuración de enrutamiento, si la página es el segmento real en la url o simplemente añade como una cadena de consulta.
El número de parámetros que tengo en la ruta no es constante? . Puedo tener 10 o tener solo 1 (id en su ejemplo). –
Tendré que aceptar esto ya que no hay otras respuestas :) –