如何使以/ home开头的路由始终指向主控制器和索引操作?

时间:2013-06-14 08:06:49

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我有以下路线:

routes.MapRoute(
    name: "Default",
    url: "home/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

这样可以正常工作并指向用户输入/ home

的主控制器索引操作

如果用户输入以下内容,我是否可以直接将其指向“索引”操作:

/ home / xxx或 /家庭/ XXX / XXX

xxx可以是什么?

3 个答案:

答案 0 :(得分:3)

当然,只需从路线定义中删除{action}部分,以便操作始终为Index

routes.MapRoute(
    name: "Default",
    url: "home/{anything}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

答案 1 :(得分:1)

如果您从网址中删除{action}并将其保留为默认值,那么它应该可以正常工作。

routes.MapRoute(
    name: "Default",
    url: "home/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

在此方案中,操作始终为索引......

答案 2 :(得分:0)

尝试这样做以捕捉每条可能的路线:

routes.MapRoute(
    "Default",
    "home/{*url}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } }
);