Tengo una aplicación asp.net mvc con una ruta similar a:Asp.Net MVC: ¿Cómo obtengo Html.ActionLink para representar valores enteros correctamente?
routes.MapRoute("Blog",
"{controller}/{action}/{year}/{month}/{day}/{friendlyName}",
new { controller = "Blog", action = "Index", id = "", friendlyName="" },
new { controller = @"[^\.]*",
year = @"\d{4}",
month = @"\d{2}",
day = @"\d{2}" }
);
Mi firma del método de acción del controlador se parece a:
public ActionResult Detail(int year, int month, int day, string friendlyName)
{ // Implementation... }
En mi opinión, estoy haciendo algo como:
<%= Html.ActionLink<BlogController>(item => item.Detail(blog.PostedOn.Year, blog.PostedOn.Month, blog.PostedOn.Day, blog.Slug), blog.Title) %>
Mientras que la URL que se genera con ActionLink funciona, utiliza variables de cadena de consulta en lugar de reescritura de URL.
Por ejemplo, produciría/blog/detalle/mi-babosa? Años = 2008 & mes = 7 & días = 5 en lugar de/blog/detalle/2008/07/05/mi-babosa
¿Hay alguna manera de obtener la versión genérica de ActionLink para rellenar correctamente los valores enteros de modo que la url salga como se espera?
Gracias
Jim
Si bien no es una solución óptima, sí sé que esto funcionará –