【发布时间】:2015-12-01 20:23:50
【问题描述】:
我正在尝试创建一个照片库 asp.net MVC 网站,其中一部分涉及将 src 设置为包含图像的本地文件夹。
@model MyProj.Models.PhotoIndexViewModel
<div class="row" id="tableSearch">
@foreach (MyProj.Models.VideoModel photo in Model.PImgList)
{
<div class="col-sm-3 thumbnail">
@Html.DisplayFor(model => photo.Title)
<a href=@Url.Action("View", new { id = photo.Id })>
<img class="img-responsive"src="@Url.Content(photo.ThumbNailPrev)" alt=@photo.Id /></a>
@Html.HiddenFor(m => m.searchTerm)
@Html.Partial("_Tags", photo)
</div>
}
</div>
ThumbNailPrev 是“~/Pics/.jpg”,它与项目主体中的一个文件夹有关。问题是图像没有出现。当我使用检查器检查图像时,说在 /Pics/(photoid)/jpg 中找不到它。我不明白为什么要这样做,因为我的照片和图像本身就在那个位置。我还确保在我的项目中包含该文件夹,但它似乎仍然找不到图像。
更新: 我只是尝试了一些东西并确认这与我从数据库调用路径的方式有关。就好像我硬编码了与数据库中它工作的字符串完全相同的字符串。现在的问题是为什么它会起作用?
【问题讨论】:
-
可能是与相对路径相关的问题。试试这个stackoverflow.com/questions/317315/asp-net-mvc-relative-paths
-
如果你直接复制了这个/Pics//jpg。 pics 和 jpg 之间有一个额外的正斜杠
-
DarkKnight:这就是我的路径的格式,唯一的区别是我从数据库中调用它,而不是在 html 中对其进行硬编码。另请参阅更新。
-
muckeypuck:这只是 SO 发布系统的某种巧合转义序列。将其更改为 () 似乎消除了第二个 /。只是为了澄清代码中没有第二个 /。
-
尝试将@Url.Content(photo.ThumbNailPrev) 更改为@photo.ThumbNailPrev
标签: html asp.net asp.net-mvc image asp.net-mvc-5