asp.net-mvc – 在ASP.NET MVC中从相同的路由URL路径提供图像

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 在ASP.NET MVC中从相同的路由URL路径提供图像前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这就是我想做的事情.我有一些内容,我写的是一个观点.此内容具有与文档相关的图像引用.例如,如果我正在查看以下网址:
http://localhost/article/8AB98/

内容可能具有以下形式的图像:

<img src="myimage.png" />

这显然会导致浏览器在以下URL查询图像:

http://localhost/article/8AB98/myimage.png

但是,由于mvc路由,将无法找到此图像.您是否知道一种简单的方法可以使该URL将正确的图像返回给浏览器?

请注意:实际上重要的是标记保持原始状态不变…这意味着以某种方式重写图像网址,以便它们指向当前视图URL之外的另一个文件夹,遗憾的是不可能.

谢谢!!

解决方法

我假设当你说“实际上重要的是标记与原始标记保持不变”时,你的意思是
<img src="myimage.png" />

是什么必须呈现给浏览器,所以你需要欺骗Web服务器采取的请求URL

http://localhost/article/8AB98/myimage.png

并仅使用该信息查找正确的图像,无论您将其存储在何处,并将其返回到浏览器.

我想到了两个选项,但很难知道要推荐哪个,因为你还没有说出存储图像的位置.

选项1 – Url重写器

购买ISAPI_Rewrite的副本,并重写所有符合上述条件的网址,以便在任何地方获取图像.有关ISAPI_Rewrite here的更多信息.

选项2 – 自定义HttpHandler

您可以编写映射到解析请求URL的所有PNG文件请求的HttpHandler,并执行查找映像所需的操作,然后将其返回到响应流.这样做的缺点是你必须告诉IIS将所有PNG请求映射到aspnet_isapi.dll,这可能是一个性能无赖.

我仍然不确定我是否正确理解你的问题,但我希望这会有所帮助.祝好运.

猜你在找的asp.Net相关文章