我已经尝试了两个多小时,但找不到该问题的答案。我在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版本处理。 有人可以在这里指出我的错误吗?
答案 0 :(得分:1)
您的titleBook
是一条完整的物理路径。但是<img>
想要一个URL。
未经测试:
<img src="~/App_Data/Images/@fileName" alt="Alternate Text" height="100" width="100">
顺便说一句:使用Directory.GetFiles(..., $"{item.IdBook:D3}*.jpg"))
,您将不需要foreach循环。