VS2012 不显示控制器上传的图像

VS2012 not showing images uploaded by controller

我创建了一个上传图片的页面,效果很好,但是当我想在视图中显示上传的图片时,我做不到。

我的图片存储在Images/products/{产品名称}/

鉴于我写了

@Foreach(var item in product.images){
    <img src="~/images/products/{productname}/@item.name" />
}

//我的名字拼写正确

在调试中 src 具有正确的值但不显示图像, 但是当我从内容文件夹中给出 URL 时,它会显示该图像, 即使在解决方案资源管理器中。 VS 不显示通过控制器代码上传的图像和创建的文件夹,

您可能需要添加对 Images/products{productName} 文件夹的权限。

  1. 打开 IIS 管理器
  2. 单击提供图像的网站或应用程序
  3. 点击右边的“基本设置link-记下App 池名称并取消该对话框。
  4. 单击左侧服务器树中的应用程序池在列表中 应用程序池 - 记下与您同名的应用程序池的标识 在步骤 3 中注明
  5. 现在在 Windows 资源管理器中,您可以右键单击图像文件夹, 选择属性,然后单击安全选项卡。找出 与应用程序池使用的身份关联的用户。如果不是 那么就没有权限 如果它在那里,点击它然后 查看权限窗格以确保选中 "Read"(或 write/modify,如果需要,甚至完全控制)。

如果您在 Images 文件夹中手动添加子文件夹,则需要重复该步骤

最佳做法是将图像保存在内容文件中,因为它在默认情况下已经具有读取权限。或者另一种方法是您可以将文件保存在 App_Data 上或将文件托管在云上(为了更好的安全性,显示时间限制)。