绝对图像路径不适用于MVC 5中的<img/>

时间:2015-02-09 20:24:53

标签: c# jquery html razor asp.net-mvc-5

我正在尝试显示路径存储在模型中的图像。

模型中存储的绝对路径映射到存储上的物理路径。

这有效:

$("#uploadresults").prepend('<img src="../../Uploads/_MG_9806.jpg" alt="" />');

然而,这不起作用:

$("#uploadresults").prepend('<img src= "'+@Url.Content(Model.ImageUrl) +'" alt="Image" />');

Model.ImageUrl =“C:\ Users \ Emad \ Documents \ Visual Studio 2013 \ Projects \ projects_notworking \ MarketSurvey \ MarketSurvey \ Uploads \ _MG_9806.jpg”

在我看来,我只能使用相对路径来使其工作。有没有办法将我的物理路径转换为相对路径?

2 个答案:

答案 0 :(得分:0)

尝试使用虚拟路径:

Model.ImageUrl = "~/MarketSurvey/Uploads/_MG_9806.jpg";

虚拟路径是相对于您的网站项目的文件夹,因此您可能需要根据项目中的MarketSurvey是项目文件夹或项目文件夹本身来调整它。

这个更简单的视图代码应该更好用:

$("#uploadresults").prepend('<img src="@Url.Content(Model.ImageUrl)" alt="Image" />');

答案 1 :(得分:0)

我没有使用jquery来更新页面上的图像,而是在我的视图中使用了服务器端变量。这对我有用:

<div id="uploadresults" class="">
    @foreach (var item in Model.Images)
    {
        <img src="@item.ImageUrl.Replace(Request.ServerVariables["APPL_PHYSICAL_PATH"], "../../")" width=100 height=100 />
    }
</div>

当然积分可以转到这篇文章:Getting relative virtual path from physical path