在MVC4路由中使用点“。”字符
我目前正在提供来自数据库表的图像,这些表都是相同的文件类型。 我想要字符点“。” 在路线上,但没有取得任何成功。 据我了解,ISAPI处理程序可能会导致与此相关的问题。 我只是不确定如何添加和排除以允许这个路由由ASP.NET处理。
routes.MapRoute( name: "ImageUrl", url: "Image/{action}/{id}.png", defaults: new { controller = "Image" } );
您收到404错误,因为在IIS配置中没有映射到路径*.png
特定托管处理程序。 因此,所有对Image/*.png
StaticFile
路径的请求都被StaticFile
模块( StaticFileModule, DefaultDocumentModule, DirectoryListingModule
)拦截,并且这些模块无法找到所请求的文件。
您可以通过在web.config
配置应用程序来解决此问题。
第一个选项是将runAllManagedModulesForAllRequests="true"
属性添加到configuration/system.webServer/modules
元素。 应该看起来像这样:
注意:但我强烈建议不要这样做。 详细了解可能的性能问题 。
所以第二个(也就是更好)选项是注册ASP.NET ISAPI以处理对Image/*.png
路径的请求: