首页 > 解决方案 > 即使我可以看到它在浏览器中进行检查,图像也不会显示

问题描述

我已经尝试了两个多小时,但我找不到这个问题的答案。我在MVC中强类型化的视图中有这部分代码:

<td>
    @foreach (var TitleBook in Directory.GetFiles(Server.MapPath("~/App_Data/Images"), "*.jpg"))
    {
        var fileName = Path.GetFileName(TitleBook);
        if (Convert.ToInt32(fileName.Substring(0,3)) == item.IdBook)
        {
            <img src="@TitleBook" alt="Alternate Text" height="100" width="100">
        }
    }
</td>

创建图像文件的名称,因此文件名中的前三个字符是数字。

当我运行代码时,我会在 hmtl 视图中获得图像的备用消息。但是,该图像的路径已被很好地阅读并且我知道它,因为我可以通过在浏览器中进行检查并仅在另一个窗口中调用 src 部分来获得它,该窗口按预期显示图像(对不起我的英语)。css 由安装在 VS2017 中的 boostrap 版本处理。有人可以在这里指出我的错误吗?

标签: asp.net-mvc

解决方案


titleBook是一个完整的物理路径。但<img>想要一个网址。

未经测试:

<img src="~/App_Data/Images/@fileName" alt="Alternate Text" height="100" width="100">

顺便说一句:Directory.GetFiles(..., $"{item.IdBook:D3}*.jpg"))你不需要 foreach 循环。


推荐阅读