asp.net MVC创建我自己的路线

时间:2009-08-20 16:14:08

标签: c# asp.net-mvc asp.net-mvc-2 asp.net-mvc-routing

您好我正在尝试创建一个如下所示的网址:

黑/花岗岩/台面

黑色和花岗岩会改变,所以我试图在global.asax.cs中创建我自己的路线,如下所示:

 routes.MapRoute("Kitchen", "kitchen/[color]/[surface]/[type]",
                        new {controller = "kitchen", action = "surface"});

将网址更改为厨房/黑色/花岗岩/台面

这种方式我认为我可以创建一个名为kitchen的控制器,其中包含一个名为surface的动作 我的代码看起来像这样:

public ActionResult surface(string color, string surface, string type)
    {
        ViewData["color"] = color;
        ViewData["surface"] = surface;
        ViewData["type"] = type;
        return View();
    }

然而,我似乎无法让它工作,我得到这个URL的错误404尽管我的自定义映射,任何人都可以指向我的阅读方向,我一直在这里阅读此页:http://weblogs.asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx < / p>

这就是给我这个想法的原因,因为他有查询和页面代码是一个小小的日期因为我正在使用MVC预览2

非常感谢

2 个答案:

答案 0 :(得分:1)

它现在的工作方式,在你的global.asax中,你需要这样的东西:

 routes.MapRoute("Kitchen Surface Route", 
                 "kitchen/{color}/{surface}/{type}",
                 new {controller = "kitchen", action = "surface", color="", surface = "", type=""});

然后你就像这样有一个ActionLink:

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

有时候路线有点复杂。您也可以使用Phil Haack's Route Debugger来帮助您。

答案 1 :(得分:1)

查看Phil Haack's Route Debugger,以帮助您查看每个请求使用的路线。