2009-08-20 6 views
2

Salut, je suis en train de créer une URL qui ressemble à ceci:asp.net MVC créer mes propres itinéraires

noir/granit/

worktops

où le noir et le granit changera donc j'ai essayé de créer mes propres routes 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

cette façon, je pensais que je pouvais créer un contrôleur appelé cuisine avec un surface appelée ction 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(); 
    } 

mais je ne peux pas l'air de le faire fonctionner, je reçois l'erreur 404 pour cette URL malgré mon mappage personnalisé, quelqu'un peut me diriger dans la bonne direction 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

c'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

Répondre

1

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 vous auriez alors un ActionLink comme ceci:

<%= Html.ActionLink("Link Text", "Kitchen", "surface", new {color="theColor", type="theType", surface="surfaceType"}, null) %> 

Il peut obtenir un peu compliqué avec des routes parfois. Vous pouvez également utiliser Phil Haack's Route Debugger pour vous aider.

Questions connexes