Rarezas de enrutamiento MVC4
Frecuentes
Visto 481 veces
1
Tengo este ActionLink en una de mis vistas
Html.ActionLink(pop.PopName, "ShowAllEncounters", "Encounter", new {popId = pop.populationID })
Estoy pensando que eso me llevará a la ruta correcta...
Pero en lugar de eso voy a esta ruta...
http://localhost:19283/Population/ShowAllEncounters?Length=9
La ruta debe ser
http://localhost:19283/Encounter/ShowAllEncounters?Length=9
Busqué en mi archivo global.asax y todo parece normal... No cambié la ruta predeterminada de ninguna manera, excepto para configurar la página de inicio predeterminada...
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Population", action = "PopulationInfo", id = UrlParameter.Optional } // Parameter defaults
);
Que es lo que esperaba... Que es similar a una ruta MVC3 que tenía. ¿Estoy haciendo algo extraño con mis rutas? ¿Que me estoy perdiendo aqui?
2 Respuestas
1
Parece que estás llamando a la sobrecarga del método incorrecto:
public static MvcHtmlString ActionLink(
this HtmlHelper htmlHelper,
string linkText,
string actionName,
Object routeValues,
Object htmlAttributes
)
http://msdn.microsoft.com/en-us/library/dd492124.aspx
En su lugar, intente llamar a esta sobrecarga:
public static MvcHtmlString ActionLink(
this HtmlHelper htmlHelper,
string linkText,
string actionName,
string controllerName,
Object routeValues,
Object htmlAttributes
)
http://msdn.microsoft.com/en-us/library/dd504972.aspx
Para llamar a la sobrecarga adecuada, use algo similar a lo siguiente:
Html.ActionLink(pop.PopName,
"ShowAllEncounters",
"Encounter",
null,
new {popId = pop.populationID })
contestado el 22 de mayo de 12 a las 18:05
0
Tu codigo
Html.ActionLink(pop.PopName, "ShowAllEncounters", "Encounter", new {popId = pop.populationID })
Debieran ser
Html.ActionLink(pop.PopName, "ShowAllEncounters", new {controller="Encounter"}, new {popId = pop.populationID })
Respondido 10 ago 12, 18:08
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas asp.net-mvc asp.net-mvc-4 or haz tu propia pregunta.
Creo que puede ser al revés (para los dos últimos parámetros), pero creo que ha respondido a mi pregunta. Además, estoy escribiendo la cadena dos veces y parece que no puedo entender por qué. - SoftwareSavant