1

我有以下路线:

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

这工作正常并指向用户输入 /home 的主控制器索引操作

如果用户输入,我是否可以始终将其直接指向 Index 操作:

/home/xxx 或 /home/xxx/xxx

xxx 可以是什么?

4

3 回答 3

3

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

routes.MapRoute(
    name: "Default",
    url: "home/{anything}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
于 2013-06-14T08:09:19.480 回答
1

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

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

在这种情况下,动作总是索引...

于 2013-06-14T08:10:28.810 回答
0

试试这个来捕捉每一条可能的路线:

routes.MapRoute(
    "Default",
    "home/{*url}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } }
);
于 2013-06-14T08:12:46.210 回答