您好我正在尝试创建一个如下所示的网址:
黑/花岗岩/台面
黑色和花岗岩会改变,所以我试图在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
非常感谢答案 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,以帮助您查看每个请求使用的路线。