我有一个在 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/