MVC中路由添加.html等后缀时报错的解决方法
在MVC中配置路由如下:
routes.MapRoute(
name: "Article",
url: "{controller}/{action}/{id}.html",
defaults: new { controller = "Article", action = "Detail", id = UrlParameter.Optional }
);
但是运行时,发现报错,提示无法找到该文件。原因是因为没有在IIS中把html后缀映射为由.NET框架处理程序来处理,所以你再怎么改路由也没用,因为IIS不会把这些文件交给你处理。aspx后缀就是在IIS中做了映射,所以如果路由中的.html改成aspx的话,程序就可以正常运行。
解决方法
在程序的web.config文件的 <system.webServer>节点下添加这句话:<modules runAllManagedModulesForAllRequests="true" />即可。