ASP MVC将所有控制器请求路由到Index操作?

时间:2016-02-01 20:59:18

标签: asp.net asp.net-mvc

我有一个有客户端路由的公共页面。我希望将Public/*形式的所有网址都路由到PublicController/Index

我试过了:

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

,这适用于Public/someRoute类型的网址,但不适用于Public/someRoute/secondRoutePublic/someRoute/secondRoute/thirdRoute等形式的网址。

1 个答案:

答案 0 :(得分:6)

你真的很亲密!这应该照顾你要做的事情。

routes.MapRoute(
                name: "Public",
                url: "Public/{*clientRoute}",
                defaults: new { controller = "Public", action = "Index"}
            );

注意URL参数中的星号,这告诉它作为“全部捕获”。现在,以Public /开头的任何内容都将转到此控制器/操作。此外,如果您不需要id参数,请不要为自己指定默认值。