【问题标题】:ASP.NET MVC Img tag not loading image when loading path from database从数据库加载路径时,ASP.NET MVC Img 标记未加载图像
【发布时间】: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


【解决方案1】:

想要一封信.. 我终于确定了这个问题,这是一个非常愚蠢的问题。在代码中,我正在保存 jpEg 图像,但通过 jpg 调用它。在视图中将 .jpg 更改为 .jpeg 后一切正常...如果您遇到类似问题,请检查并确保文件扩展名正确。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-15
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 2020-08-11
    • 1970-01-01
    • 2022-12-23
    • 1970-01-01
    相关资源
    最近更新 更多