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

Respuestas a la pregunta(4)

Su respuesta a la pregunta