【发布时间】:2011-06-08 13:57:51
【问题描述】:
所以我在 IIS 7 下运行的 MVC 3 应用程序中有这样的路由:
routes.MapRoute(
"VirtualTourConfig",
"virtualtour/config.xml",
new { controller = "VirtualTour", action = "Config" }
);
诀窍是文件实际上存在于 /virtualtour/config.xml 中。似乎请求只是在该位置返回 xml 文件,而不是点击处理 XML、进行一些更改并返回自定义 XmlResult 的路由。
如果文件存在于磁盘上,有什么建议可以告诉我的应用程序点击路由而不是实际文件?
编辑:看来我可以在 Global.asax 的 RegisterRoutes 方法中使用 routes.RouteExistingFiles = true; 来告诉应用程序忽略磁盘上的文件。但是,这会全局设置标志并中断应用程序中的许多其他请求。例如,我仍然希望调用 /assets/css/site.css 来返回 CSS 文件,而不必专门为每个静态资产设置路由。所以现在问题变成了,有没有办法在每条路线的基础上做到这一点?
【问题讨论】:
-
我认为没有一种简单的方法可以实现这一目标。为什么不简单地将静态文件移动到
~/App_Data文件夹?
标签: c# asp.net-mvc routing