如何将此图像源转换为Url.Content?

时间:2013-04-18 09:29:02

标签: c# asp.net-mvc asp.net-mvc-3 razor

我有以下图像以这种方式呈现。

  <img src="../../../..@Model.FloorPlan.Floor_Plan_Image_Path@Model.FloorPlan.Floor_Plan_Image_Filename" alt=""/>

我希望如果可能的话,它的src属性将被更改为Url.Content。

我尝试的是这个,但我的问题是它将我的模型视为字符串:

<img src="@Url.Content("~/Model.FloorPlan.Floor_Plan_Image_Path@Model.FloorPlan.Floor_Plan_Image_Filename")" alt=""/>

任何人都可以帮助我吗?

路径和文件名的值如下:

Model.FloorPlan.Floor_Plan_Image_Path =“/ Content / Uploads / FloorPlans / 00004601 /” Model.FloorPlan.Floor_Plan_Image_Filename =“testfloorplan.png”

3 个答案:

答案 0 :(得分:5)

我发现自己处于一种情况,我需要在任何视图上格式化字符串, 所以我为此做了一个扩展方法,只是为了摆脱每个View上的那些String.Format

public static class UrlHelpers
{
    public static string Content(this UrlHelper urlHelper,
                                 string formatPath, 
                                 params object[] args)
    {
        return urlHelper.Content(String.Format(formatPath, args));
    }
}

它只是简单地格式化指定的路径,没有什么进展,但是调用它会更好看。

@{
    var path = Model.FloorPlan.Floor_Plan_Image_Path;
    var imageName = Model.FloorPlan.Floor_Plan_Image_Filename;
}
<img src="@Url.Content("~{0}{1}", path, imageName)"/>

答案 1 :(得分:3)

我想我明白你的目标。试试这个:

<img src="@Url.Content(String.Format("~{0}{1}", Model.FloorPlan.Floor_Plan_Image_Path, Model.FloorPlan.Floor_Plan_Image_Filename))" alt=""/>

答案 2 :(得分:3)

尝试

<img src="@Url.Content("~/" + Model.FloorPlan.Floor_Plan_Image_Path + Model.FloorPlan.Floor_Plan_Image_Filename)" alt="" />