asp.net mvc 添加扩展url

1933 查看

最近在做mvc项目,边学边做,开发时遇到一个问题,记录于此。
开发平台:win7, visual studio2013
为搜索引擎提供sitemap数据,扩展名要求为.xml,我就尝试在路由表里加了如下一段,会报404错误,而在同事的电脑上就可以正常访问。

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

最后检查下来是创建mvc项目的版本不同,同事默认的是asp.net Framework4.0,我的是Framework4.5,两个版本对于扩展url的请求处理不同。


asp.net Framework.jpg


对于Framework4.5,要在web.config加上runAllManagedModulesForAllRequests="true",就能转到指定的action。即对于所有的请求,都会检查,包括.css, .js, .jpg等。

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