ASP.net MVC映像路由
本文关键字:路由 映像 MVC net ASP | 更新日期: 2023-09-27 18:20:22
我有一个MVC4 application
,我正试图生成一个路由或ihttphandler
来处理图像请求,但这个handler or route
从未被激发。
我在route config
上有以下路线:
routes.MapRoute("Images", "images/{filename}", new { controller = "Image", action = "ImageRequest" });
当我使用它来调用images/demo.png 时,这种方式对我不起作用
我也尝试过像这里所示的IhttpHandler
,但也没有成功:返回基础动态映像生成ASPNET控制器路由IHttpHandlers并为所有请求运行所有托管模块。
我的web config
处理程序部分如下所示:
<!-- language: lang-xml -->
<add name="Imagehandler jpg" path="/images/*.jpg" verb="*" type="ResponsiveImages.Handlers.ImageHandler, ResponsiveImages.Handlers" />
<add name="Imagehandler jpeg" path="/images/*.jpeg" verb="*" type="ResponsiveImages.Handlers.ImageHandler, ResponsiveImages.Handlers" />
<add name="Imagehandler bmp" path="/images/*.bmp" verb="*" type="ResponsiveImages.Handlers.ImageHandler, ResponsiveImages.Handlers" />
<add name="Imagehandler png" path="/images/*.png" verb="*" type="ResponsiveImages.Handlers.ImageHandler, ResponsiveImages.Handlers" />
<add name="Imagehandler tiff" path="/images/*.tiff" verb="*" type="ResponsiveImages.Handlers.ImageHandler, ResponsiveImages.Handlers" />
如果处理程序和路由都处于活动状态,那么处理程序不会被触发,但路由会被触发。
有人能告诉我我在这里做错了什么吗?
路由映射中的路由顺序是什么?
MVC匹配FIRST匹配路线,而不是最具体的,我猜在对特定路线进行映像之前,您已经达到了默认路线。
我怀疑,如果你试图点击"Images/Myfile.png",发生的事情是路由试图找到一个静态文件,而不是使用你的图像路由。
也许可以看看其他问题,比如这个,以获得更多信息:
在MVC4中路由具有扩展名的url赢得';t工作,尝试提供静态文件