MVC路由如何检测文件路径
How does MVC routing detects file path
正如我们所知,路由遵循 RouteConfig.cs 中 RegisterRoutes 函数中提供的路由,它定义了默认路由中的控制器和操作。
我的项目只有默认路由,如:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
那么路由如何检测我们是在访问某些动作还是指向图像、css 或 js 等文件。
简短的回答是任何对具有 .在其名称中直接由 IIS 提供服务,而无需调用 MVC 路由。相反,不包含 .传递给 MVC 进行路由。重要的是,这只是默认行为。
作为快速测试,为项目中不存在的任何资源(例如 \asdf
)制作一个 url,并注意 MVC 生成的 404 错误。现在用 \asdf.asdf
重复测试,注意 404 错误是由 IIS 生成的。
可以使用 web.config 中的指令更改此行为。例如,参见 How do I route images using 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 等文件。
简短的回答是任何对具有 .在其名称中直接由 IIS 提供服务,而无需调用 MVC 路由。相反,不包含 .传递给 MVC 进行路由。重要的是,这只是默认行为。
作为快速测试,为项目中不存在的任何资源(例如 \asdf
)制作一个 url,并注意 MVC 生成的 404 错误。现在用 \asdf.asdf
重复测试,注意 404 错误是由 IIS 生成的。
可以使用 web.config 中的指令更改此行为。例如,参见 How do I route images using ASP.Net MVC routing?