绝对图像路径不适用于 MVC 5 中的 <img>
absolute image path doesn't work with <img> in 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"
在我看来,我只能使用相对路径来让它工作。有没有办法将我的物理路径转换为相对路径?
尝试改用虚拟路径:
Model.ImageUrl = "~/MarketSurvey/Uploads/_MG_9806.jpg";
虚拟路径是相对于您的 Web 项目文件夹的,因此您可能需要根据 MarketSurvey
是您项目中的文件夹还是您的项目文件夹本身来调整它。
而且这个更简单的视图代码应该工作得更好:
$("#uploadresults").prepend('<img src="@Url.Content(Model.ImageUrl)" alt="Image" />');
我没有使用 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>
当然要归功于此 post:Getting relative virtual path from physical path
我正在尝试显示其路径存储在模型中的图像。
模型中存储的绝对路径映射到存储上的物理路径。
这个有效:
$("#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"
在我看来,我只能使用相对路径来让它工作。有没有办法将我的物理路径转换为相对路径?
尝试改用虚拟路径:
Model.ImageUrl = "~/MarketSurvey/Uploads/_MG_9806.jpg";
虚拟路径是相对于您的 Web 项目文件夹的,因此您可能需要根据 MarketSurvey
是您项目中的文件夹还是您的项目文件夹本身来调整它。
而且这个更简单的视图代码应该工作得更好:
$("#uploadresults").prepend('<img src="@Url.Content(Model.ImageUrl)" alt="Image" />');
我没有使用 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>
当然要归功于此 post:Getting relative virtual path from physical path