Comment puis-je configurer un routage {controller}/{id}
dans ASP.NET MVC 5. Ce que je voudrais réaliser: s'il n'y a pas {action}
défini, appelez Index()
avec id
.Ajouter un routage en cas de "action" manquant dans url ({controller}/{id})
J'ai essayé thism mais ne fonctionne pas:
// Keep default routing
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
// Add own routing in case of missing "action"
routes.MapRoute(
name: "Controller/Id",
url: "{controller}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Je ne pense pas que vous pouvez surcharger ces routes dans cet ordre, étant donné que ID est facultative dans la première puis la résolution des routes est ambiguë et par défaut à celui ajouté en premier . par exemple. il prendra le nom que vous voulez entrer en tant que nom de l'action de la première route. Si vous voulez faire cela, vous devez d'abord mettre la deuxième route. Dans ce cas, cependant, pour utiliser le routage par défaut, vous devrez spécifier les trois paramètres. – ameer
Si vous avez ajouté des contraintes et que vous avez inversé l'ordre des règles, cela pourrait fonctionner comme prévu –
Merci à vous deux. J'ai essayé ce que Simon a suggéré et cela a fonctionné. –