如何在ASP.NET MVC 4中定义一个catch(绝对)所有路由

时间:2013-10-29 14:41:26

标签: asp.net-mvc asp.net-mvc-routing wildcard

我想定义捕获所有请求的所有路由的捕获。

我尝试了以下路线定义:

routes.MapRoute("CatchAll", "{*stuff}", new { controller = "Proxy", action = "Proxify", stuff = UrlParameter.Optional });

只要它们不包含像in这样的文件名,它就会捕获所有请求 http://localhost/vault/11/Test.docx

如何定义一个路径,将主机名后面的每个字符串作为字符串传递给我的控制器?

解决方案

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

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

1 个答案:

答案 0 :(得分:0)

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