未找到ASp.net MVC路由页面

时间:2010-07-27 12:29:48

标签: asp.net asp.net-mvc

我有这个网址http://localhost:17643/category/1/Home/Arts/

它应该重定向到home / index?idCategory = 1

相反,我得到了一个找不到的页面。

RouteRegistrar是:

  routes.MapRoute(
            "Category",
            "category/{idCategory}/{categories}",
            new { controller = "home", action = "index", idCategory = "" }
        );
        routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional }  // Parameter defaults
        );

谢谢

3 个答案:

答案 0 :(得分:3)

尝试更改将通配符添加到类别位:

  routes.MapRoute( 
            "Category", 
            "category/{idCategory}/{*categories}", 
            new { controller = "home", action = "index", idCategory = "" } 
        ); 

这将允许类别部分之外的所有内容都包含在类别中。

如果您还不知道路由的第一条规则是:

将使用找到的第一个匹配路线将忽略所有前进路线,因此请确保先将最具体的路线放在首位。

答案 1 :(得分:2)

我强烈建议您查看routing debugger by Phil Haack。在尝试找出路由未按预期运行的原因时,这是非常宝贵的。

答案 2 :(得分:0)

 routes.MapRoute(
            "Category",
            "home/index/{idCategory}",
            new { controller = "home", action = "index", idCategory= "" }
        );

这会将您重定向到/ home / index?idCategory = 1