Asp.net mvc 如何在ASP.NET MVC 4中定义捕获(绝对)所有路由

Asp.net mvc 如何在ASP.NET MVC 4中定义捕获(绝对)所有路由,asp.net-mvc,asp.net-mvc-routing,wildcard,Asp.net Mvc,Asp.net Mvc Routing,Wildcard,我想定义一个捕获所有请求的“捕获所有”路由 我尝试了以下路线定义: routes.MapRoute("CatchAll", "{*stuff}", new { controller = "Proxy", action = "Proxify", stuff = UrlParameter.Optional }); 它捕获所有请求,只要它们不包含如中所示的文件名 http://localhost/vault/11/Test.docx 如何定义一个路由,将主机名之后的所有内容都作为字符串处理,并将其传

我想定义一个捕获所有请求的“捕获所有”路由

我尝试了以下路线定义:

routes.MapRoute("CatchAll", "{*stuff}", new { controller = "Proxy", action = "Proxify", stuff = UrlParameter.Optional });
它捕获所有请求,只要它们不包含如中所示的文件名
http://localhost/vault/11/Test.docx

如何定义一个路由,将主机名之后的所有内容都作为字符串处理,并将其传递给我的控制器

解决方案

通过将以下内容插入到我的web.config文件中,我找到了问题的解决方案:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>

我认为默认情况下,ASP.NET包含许多用于处理不同文件类型的模块。这意味着,如果请求的资源与这些已知文件类型中的一种匹配(例如
*.asp
*.aspx
),则相应的模块将处理该请求,而不是MVC请求