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

pQu*_*123 3 asp.net asp.net-mvc

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

我尝试了这个:

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

这适用于类型为url的形式,Public/someRoute但不适用于形式Public/someRoute/secondRoute或其他形式的url Public/someRoute/secondRoute/thirdRoute

Tom*_*mmy 8

你真的很亲密!这应该照顾您要做什么。

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

请注意URL参数中的星号,这告诉它充当“全部捕获”功能。现在,任何以Public /开头的内容都将转到该控制器/动作。另外,如果不需要id参数,则不必为它指定默认值。