Como ignorar os valores atuais da rota ao gerar links?
A pergunta é semelhante a asp.net mvc Html.ActionLink () mantendo o valor da rota que eu não quero, mas com um toque que a torna mais complex
A partir de um novo aplicativo MVC3 padrão, altero as rotas para:
routes.MapRoute(
"r1", // Route name
"{controller}/{id}/{action}"
);
routes.MapRoute(
"r2", // Route name
"{controller}/{action}"
);
Observe que o ID vem antes da ação no primeir
Em seguida, em Home \ Index.cshtml, adiciono:
@Url.Action("Index")
@Url.Action("Index", new { id = "blah" })
@Url.Action("Index", new { id = "" })
Agora eu navego para / Home / Foo / Index e vejo os 3 links gerados. Eu receb
"/ Página inicial / Foo / Índice" "/ Página inicial / blá / Índice" "/ Página inicial / Índice? Id = Foo"s dois primeiros fazem sentido e estão usando a primeira rot
Mas no terceiro link, que atinge a segunda rota, não entendo por que id = Foo é passado na string de consulta, já que passei explicitamente um ID vazio. Eu esperaria que ele gerasse "/Home/Index"
Alguém pode explicar isso e sugerir como posso fazê-lo não aparece