有谁知道如何将所有请求/图像重定向到MVC3中的/ Content / images?我只想要某些命名约定。
谢谢,
答案 0 :(得分:0)
也许您想要永久重定向?有人已经问了同样的问题,答案就在那里:Permanent Redirect Legacy Routes for static files in ASP.Net MVC
答案 1 :(得分:0)
我能给出的最佳答案是不要直接尝试从视图本身请求任何内容。
而是创建HTML帮助程序来处理这些请求,并仅指定这些帮助程序中文件的实际路径。这样,当事物不可避免地四处移动时,你可以在帮助器中改变一次路径,每个视图都可以正常工作。这是我的图像助手的一个例子,我想我从Rob Conery和他惊人的Tekpub MVC样本中偷走了这个。
在这个类中,我声明静态变量pubdir(对于我的内容目录)和imageDir(对于我的内容目录中的图像子文件夹)
public static string Image(this HtmlHelper helper, string fileName, string attributes)
{
fileName = string.Format("{0}/{1}/{2}", pubDir, imageDir, fileName);
if (string.IsNullOrEmpty(attributes))
{
return string.Format("<img src='{0}'/>", helper.AttributeEncode(fileName));
}
var temp = string.Format("<img src='{0}' '{1}' />", helper.AttributeEncode(fileName), helper.AttributeEncode(attributes));
return temp;
}
当我拥有的是文件名时,我用另一种方法重载了这个。
public static string Image(this HtmlHelper helper, string fileName)
{
return Image(helper, fileName, "");
}
现在,当我想在我的视图中看到一个图像时,我打电话给
@Html.Image("hello.jpg")
我指定的全部是文件名,图片标签返回给我。 你实际上可以进一步(如果你愿意)并创建一个名为HelloImage的方法,该方法不接受任何参数,你可以在实际方法中指定文件名,只需重命名图像。
我已经做过这样的事情,比如横幅和徽标都可以重复使用。我已经开始为actionlinks做同样的事情,以防控制器,动作和区域被移动或重命名。
http://codingsmith.co.za/extending-the-actionlink-helper-in-mvc/