我可以从Views目录在ASP.NET MVC应用程序中提供图像

时间:2009-09-24 00:11:32

标签: asp.net-mvc asp.net-mvc-routing

我有一些其他人设计的页面是我需要转储到我的MVC应用程序中的简单HTML。

毫不奇怪,图像存储在本地/图像目录中。

我希望能够从主视图页面所在的Views目录中提供图像。

我宁愿这样做,也不要把它作为自己的虚拟目录,但我不确定这是否真的很容易。将来我不得不在页面中添加'mvc'组件(例如RenderPartial或Html扩展代码),所以我更喜欢将这些页面作为我的应用程序的一部分,而不是仅仅在自己的虚拟目录中进行标记。

主要途径:

 http://example.com/microsite/

图片路径:

 http://example.com/microsite/images

如果可能的话,我希望微型网站/图像能够映射到Views / Microsite / images。

或者,如果有一种方法可以在应用程序中创建“伪”虚拟目录,我宁愿这样做,而不是依赖于必须从IIS中设置虚拟目录 - 但是I don't think thats possible

我尝试使用类似的东西,但当然不起作用,因为这实际上并不是映射,而只是忽略了一条路线:

 routes.IgnoreRoute("microsite/images/{*pathInfo}");

2 个答案:

答案 0 :(得分:1)

听起来您可能会受益于名为“区域”的MVC 2功能。菲尔哈克发布了new feature

答案 1 :(得分:1)

无论图像的实际位置如何,都应使用<img src="<%=Url.Content("~/my/path/to/images/picture.png")%>进行解析。而不是“〜/ Content / Images”,你会指向“〜/ Views / Products / Images / product1.png”,或接近它的东西。

无需使用此实现修改路由。