ASP.NET MVC: aparecen enlaces de acción vacíos
Estoy usando una ruta predeterminada, por lo que no necesito especificar el controlador.
routes.MapRoute(
"Default",
"{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Con esto, puedo crear URL como myapp.com/Customers en lugar de myapp.com/Home/Customer
Cuando pruebo localmente, todo está bien. Cuando subo una versión en vivo, los enlaces generados con Html.ActionLink están vacíos. Sé que estoy usando Html.ActionLink correctamente, porque funciona bien localmente:
// Title Action Controller
<%: Html.ActionLink("Manage My Settings", "Settings", "Home") %>
Eliminé todas las rutas excepto la predeterminada, intenté especificar ActionLink con y sin el controlador, etc. Incluso intenté volver a tener el controlador en la ruta, por ejemplo:
"{controller}/{action}/{id}"
Nada funciona en vivo. Todo funciona localmente. Volviendo un poco loco.
ACTUALIZAR
OK, hizo un extraño descubrimiento. De hecho, tenía otro UrlParameter opcional después de id, llamado page. Estúpidamente no lo incluí en el ejemplo porque pensé que no había diferencia. Si lo saco, las cosas parecen funcionar.
Entonces, en realidad, esto funciona:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
yest ¡trabajos
routes.MapRoute(
"Default",
"{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
peroest haceN trabaj
routes.MapRoute(
"Default",
"{action}/{id}/{page}",
new { controller = "Home", action = "Index",
id = UrlParameter.Optional, page = UrlParameter.Optional }
);
¿Por qué no