我希望我的ASP.NET MVC应用程序中的所有图像的URL都具有以下形式:
www.mydomain.com/img/someimagename.png
但是,我目前在我的MVC项目中拥有所有图像: / Content / img / folder。
如何编写将/ img映射到/ Content / img?
的路由答案 0 :(得分:5)
图像不会通过ASP.NET堆栈。 IIS处理这些请求。如果希望ASP.NET应用程序处理图像请求,则需要编写HttpModule。此博客向您展示如何执行此操作: http://weblogs.asp.net/jgaylord/archive/2009/05/04/letting-asp-net-handle-image-file-extensions-in-iis-6.aspx
但更简单的解决方案是在IIS中创建一个虚拟目录。
答案 1 :(得分:4)
您可以使用重写规则。在web.config中添加以下路由到重写部分:
<rule name="Img to content img">
<match url="^img/(.*)" />
<action type="Rewrite" url="/Content/img/{R:1}" />
</rule>
答案 2 :(得分:2)
这种方法怎么样,
public ActionResult Img(string imgURL)
{
ViewBag.imageURL = imgURL;
return View();
}
和剃刀视图
<img src="@Url.Content("~/Content/images/"+@ViewBag.imageURL)" />
或在基本的asp.net视图中
<img src="~/Content/images/"+ViewBag.imageURL)" />