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" />

如果处理程序和路由都处于活动状态,那么处理程序不会被触发,但路由会被触发。

有人能告诉我我在这里做错了什么吗?

ASP.net MVC映像路由

路由映射中的路由顺序是什么?

MVC匹配FIRST匹配路线,而不是最具体的,我猜在对特定路线进行映像之前,您已经达到了默认路线。

我怀疑,如果你试图点击"Images/Myfile.png",发生的事情是路由试图找到一个静态文件,而不是使用你的图像路由。

也许可以看看其他问题,比如这个,以获得更多信息:

在MVC4中路由具有扩展名的url赢得';t工作,尝试提供静态文件