如何将Home / Action / id映射到action / id?

时间:2010-05-14 06:17:20

标签: asp.net-mvc routing

目前我已定义此路线

 routes.MapRoute(
                "Default",                                                
                "{controller}/{action}/{id}",                           
                new { controller = "Home", action = "Index", id = "" } 
                );

我想将/ Home / Action1 / id映射到/ Action1 / id 谁知道怎么样?

3 个答案:

答案 0 :(得分:3)

你可能必须小心你所要求的路线,因为它可能比预期的要多。

一种解决方法是尽可能使用约束来限制该路线。

E.g。检查id是否为数字......

routes.MapRoute("ActionRoute", 
         "{action}/{id}",
         new { controller = "Home", action = "Index", id="1" },
         new { id = @"\d{1,6}" }
);

通过这种方式,您仍然可以在末尾指定通用的默认路由,以便在需要时捕获网站上的其余路由。

答案 1 :(得分:2)

看看这个问题How to Route /About to /Home/About

这不是(确切)答案,但我认为它反过来给你答案。

答案 2 :(得分:2)

 routes.MapRoute(
                "NewRoute",                                                
                "{id}",                           
                new { controller = "Home", action = "Index", id = "" } 
                );

尝试一下,只要您默认控制器和操作它应该工作。不要忘记genratig链接Html.Action以使用新的路由名称。

为我的iPhone上写的格式道歉