Entity开发项目中已上传成功的图片无法正常显示问题求助
问题原因&解决方案
1. 图片不显示的直接原因
你当前使用@Html.DisplayFor(modelItem => item.picture)填充img标签src属性的写法是错误的:DisplayFor是ASP.NET MVC的强类型展示辅助方法,输出内容会经过HTML编码,甚至会根据模板配置额外包裹HTML标签,无法直接输出原始的路径字符串,自然无法正常加载图片。
2. @Url.Content(item.picture)报空值错误的解决方法
按照以下步骤排查即可:
- 首先检查数据库存储的所有记录中,是否存在
picture字段为null或者空字符串的情况,遍历时增加空值判断即可规避报错:
<td> @if (!string.IsNullOrEmpty(item.picture)) { <img src="@Url.Content(item.picture)" height="100" width="100" alt="图片" /> } else { <span>暂无图片</span> } </td>
- 如果你确认所有记录的
picture字段都有值,检查存储的路径格式:- 正确的存储格式应为站点虚拟路径,比如
~/Image/xxx.jpg或者/Image/xxx.jpg,如果存的是服务器本地物理路径(比如C:\网站目录\Image\xxx.jpg),需要调整上传逻辑,存储相对于站点根目录的虚拟路径,不要存物理路径。 - 如果存储的路径已经是不带
~的站点相对路径(比如/Image/xxx.jpg),可以直接写src="@item.picture",不需要套Url.Content也能正常加载。
- 正确的存储格式应为站点虚拟路径,比如
内容的提问来源于stack exchange,提问作者John Macasinag
相关产品推荐
相关产品推荐

