在MVC 5中创建自定义RouteBase

时间:2014-07-25 08:28:31

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

我通过继承MyCustomRoute

实施了自定义路由RouteBase

我是orerridden GetRoutData,只要我使用像/XY这样的网址,就会调用该方法。 但是,当我调用/XY.htm/XY.pdf之类的网址时,系统不会调用此方法。我想某个地方我必须指示我的应用程序“#34;文件"需要由计票处理

这就是RegisterRoutes

中的内容
public static void RegisterRoutes(RouteCollection routes)
{
    routes.Add(new MyCustomRoute());
    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}

我需要做什么才能"文件"也可以通过我的路线处理?

1 个答案:

答案 0 :(得分:0)

通常,默认情况下,路由系统会忽略对尚未映射到的文件扩展名的请求,然后IIS静态文件处理程序将接管。

使用您指定的“默认”路由映射和处理/XY会发生什么。但是,静态文件由静态文件处理程序而不是MVC路由系统处理。您将需要阻止IIS处理静态文件。还有更多内容,您可以在this article

中找到更多详细信息