我有一个有客户端路由的公共页面。我希望将Public/*
形式的所有网址都路由到PublicController/Index
。
我试过了:
routes.MapRoute(
name: "Public",
url: "Public/{clientRoute}",
defaults: new { controller = "Public", action = "Index", id = UrlParameter.Optional }
);
,这适用于Public/someRoute
类型的网址,但不适用于Public/someRoute/secondRoute
或Public/someRoute/secondRoute/thirdRoute
等形式的网址。
答案 0 :(得分:6)
你真的很亲密!这应该照顾你要做的事情。
routes.MapRoute(
name: "Public",
url: "Public/{*clientRoute}",
defaults: new { controller = "Public", action = "Index"}
);
注意URL参数中的星号,这告诉它作为“全部捕获”。现在,以Public /开头的任何内容都将转到此控制器/操作。此外,如果您不需要id参数,请不要为自己指定默认值。