ASP.NET MVC 4 Routes - Contrôleur / ID par rapport au contrôleur / action / id
Je suis en train d'ajouter une route par défaut, de sorte que j'ai à la fois les url de travail:
http://www.mywebsite.com/users/create
http://www.mywebsite.com/users/1
Cela rendra le premier itinéraire de travail:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "users", action = "Index", id = UrlParameter.Optional }
);
Cependant, la deuxième voie ne fonctionne pas de toute évidence.
Cela rendra la deuxième voie de travail, mais cassera le premier:
routes.MapRoute(
name: "Book",
url: "books/{id}",
defaults: new { controller = "users", action = "Details" }
);
Comment combiner les deux parcours de configurations, de sorte que les deux Url de travail?
Je m'excuse si il y a déjà une question comme ça, je n'ai pas pu trouver quoi que ce soit.
source d'informationauteur Arman Bimatov
Vous devez vous connecter pour publier un commentaire.
La clé est de mettre plus de routes spécifiques en premier. Afin de mettre le "Carnet de route" de première. Modifier je suppose que vous avez également besoin d'une contrainte pour autoriser uniquement les numéros pour correspondre à la "id" est la partie de cette route. Fin modifier
Et de s'assurer que le paramètre "id" dans votre "Détails" de l'action est un type int:
De cette façon, les "Livres" route ne sera pas attraper une URL comme
/users/create
(depuis le deuxième paramètre est reqiured à être un certain nombre), et il en sera de l'automne jusqu'à la prochaine ("Default") de l'itinéraire.