ASP.NET MVC: ActionLinks vazios aparecendo
Estou usando uma rota padrão, para não precisar especificar o controlado
routes.MapRoute(
"Default",
"{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Com isso, posso criar URLs como myapp.com/Customers em vez de myapp.com/Home/Customer
Quando eu testar localmente, está tudo bem. Quando eu carrego uma versão ao vivo, todos os links gerados com Html.ActionLink ficam vazios. Eu sei que estou usando o Html.ActionLink corretamente, porque funciona bem localmente:
// Title Action Controller
<%: Html.ActionLink("Manage My Settings", "Settings", "Home") %>
Eu removi todas as rotas, mas o padrão, tentei especificar o ActionLink com e sem o controlador etc. Até tentei voltar a ter o controlador na rota, por exemplo:
"{controller}/{action}/{id}"
Nothing trabalha ao vivo. Tudo funciona localmente. Ficando um pouco louco.
ATUALIZAR
OK, fez uma descoberta estranha. Na verdade, eu tinha outro UrlParameter opcional após o ID, chamado page. Estupidamente, não o incluí no exemplo, porque achei que não fazia diferença. Se eu tirar, as coisas parecem funcionar.
Então, na verdade, isso funciona:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
andest trabalho
routes.MapRoute(
"Default",
"{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
masest fazNã trabalho
routes.MapRoute(
"Default",
"{action}/{id}/{page}",
new { controller = "Home", action = "Index",
id = UrlParameter.Optional, page = UrlParameter.Optional }
);
Por que não