Ho impostato un progetto ASP.NET MVC e tutto funziona alla grande, ma ho un problema con il routing. Il mio Global.asax assomiglia a questo:ASP.NET MVC L'instradamento degli URL non mi dà abbastanza URL
public static void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
}
Quindi, niente fuori dall'ordinario. Il mio problema è che quando mi collego ad un controller/azione/params con una Html.ActionLink in questo modo:
<%= Html.ActionLink("My link", "SomeAction", "SomeController", new {param="someParam"})%>
esso dovrebbe generare (almeno quello che ha un senso nella mia testa) un collegamento come ad esempio: http://www.localhost/SomeController/SomeAction/someParam
.
Ma invece genera un link come questo: http://localhost/SomeController/SomeAction?param=someParam
Se faccio manualmente un link che collega al risultato atteso (SomeController/SomeAction/someParam) poi il controller a destra e l'azione sono chiamati, ma il parametro definito nel metodo action è sempre nullo.
Qualche idea?
Hmmm, quindi questo significa che devo specificare una nuova regola di routing per ogni nuova azione del controller che richiede un diverso set di parametri? Ciò comporterebbe una grande quantità di regole di routing per un'applicazione aziendale. Non c'è un approccio più dinamico di quello? – Erik
Se questo fosse davvero dinamico, non perderai la sicurezza del tipo, la sicurezza dei parametri e la testabilità? – bzlm