MVC路由如何检测文件路径

时间:2018-12-11 17:54:53

标签: c# asp.net-mvc asp.net-mvc-routing

我们知道路由遵循RouteConfig.cs中RegisterRoutes函数提供的路由,该路由定义了默认路由中的控制器和操作。

我的项目只有默认路由,例如:

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );

因此,路由如何检测到我们是在访问某些动作还是指向图像,css或js之类的文件。

1 个答案:

答案 0 :(得分:0)

简短的答案是,对具有的资源的任何请求。 IIS直接以其名称提供服务,而无需调用MVC路由。相反,不包含的请求。传递给MVC进行路由。重要的是,这只是默认行为。

作为一项快速测试,请为项目中不存在的任何资源(例如\asdf)创建一个url,并注意由MVC生成的404错误。现在,用\asdf.asdf重复测试,并注意IIS产生了404错误。

可以使用web.config中的指令更改此行为。例如,请参见How do I route images using ASP.Net MVC routing?