asp.net MVC créer mes propres itinéraires
-
19-09-2019 - |
Question
Salut, je suis en train de créer une URL qui ressemble à ceci:
noir / granit / plans de travail
où le noir et le granit changeront donc j'ai essayé de créer mes propres itinéraires dans Global.asax.cs comme ceci:
routes.MapRoute("Kitchen", "kitchen/[color]/[surface]/[type]",
new {controller = "kitchen", action = "surface"});
changer l'URL à la cuisine / noir / granit / worktops
De cette façon je pensais que je pouvais créer un contrôleur appelé cuisine avec une surface d'action appelée mon code pour cela ressemble à ceci:
public ActionResult surface(string color, string surface, string type)
{
ViewData["color"] = color;
ViewData["surface"] = surface;
ViewData["type"] = type;
return View();
}
je ne peux pas semble cependant faire fonctionner, je reçois l'erreur 404 pour cette URL malgré mon mappage personnalisé, quelqu'un peut me diriger dans le sens de la lecture, j'ai lu cette page ici: http: // weblogs. asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx
est ce qui m'a donné l'idée, comme il a la requête et la page du code est un peu owt de date que je suis en utilisant MVC Preview 2
Merci beaucoup
La solution
La façon dont il fonctionne, est dans votre global.asax, vous voulez quelque chose comme ceci:
routes.MapRoute("Kitchen Surface Route",
"kitchen/{color}/{surface}/{type}",
new {controller = "kitchen", action = "surface", color="", surface = "", type=""});
Et alors vous auriez un ActionLink comme ceci:
<%= Html.ActionLink("Link Text", "Kitchen", "surface", new {color="theColor", type="theType", surface="surfaceType"}, null) %>
Il peut devenir quelque peu compliqué avec des itinéraires parfois. Vous pouvez également utiliser Route de Phil Haack Debugger pour aider vous sur.
Autres conseils
Consultez Route Debugger Phil Haack vous aider à voir la route qui est utilisée pour chaque demande.