asp.net-mvc - 当找不到图像时显示默认图像

标签 asp.net-mvc iis asp.net-mvc-4 url-rewriting iis-7.5

我有一个在 iis 7.5 上运行的 mvc 4 应用程序。该应用程序生成一个产品目录,其中包含分配给每个产品的图像。

有时,某些产品没有分配任何图像,在这种情况下,我想包含一个占位符图像,而不是不包含任何图像。直到运行时出现404时才表明该镜像不存在。

我正在考虑在 IIS 中设置一个 url 重写规则,如果匹配条件的图像返回 404,则显示默认图像。我对此有几个问题:

这可能吗?如果可能的话,如何实现? 这样做是否存在性能问题? 还有其他方法可以实现上述目标吗?

最佳答案

好问题。我的第一个想法是查明该文件是否存在于服务器上。我假设这并不像拥有图像的数据库列那么容易。

也许您有一个场景,您查看一个文件夹,其中图像的名称与productId(或类似的名称)相同。您可以使用 System.IO.FileExists() 来查明该文件是否存在。这可能不是非常有效。

另一个想法可能是查看文件所在的目录并将它们放入某种字典中。您可以将其存储在应用程序缓存中。您可以在渲染图像之前查看缓存。当然,您需要一种刷新该字典的方法(即上传该产品的产品图像)

我不知道重写将如何进行。我认为你可以为此做一些工作——以避免这样做。

<img src="(@Dictionary[key] != null ? Model.Image : Model.EmptyImage)" />

关于asp.net-mvc - 当找不到图像时显示默认图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14926282/

相关文章:

c# - 如何将多个 MVC.net 应用程序与其他 MVC.net 应用程序连接?

powershell - 如何使用 powershell 设置 IIS 的表单例份验证(system.web/authentication)的 overrideMode?

ssl - GCP Compute Engine 托管两个 HTTPS 网站

asp.net-mvc - Asp.Net MVC 如何记录所有被调用的操作

c# - 提供下载链接而不在服务器上创建文件

security - 在 IIS7.5 上安装 WordPress 时建议的文件系统权限是什么?

c# - 如何将 Excel 文件保存在特定文件夹中

javascript - 是什么导致我的视​​图 div 元素内的部分 View 变得瘫痪?

c# - 如何在asp.net core的路由属性中设置正则表达式的匹配超时

asp.net-mvc - 如何测试 ASP.NET MVC 项目