Asp.net mvc 3 如何在MVC Asp.Net中调用HttpHandler?

Asp.net mvc 3 如何在MVC Asp.Net中调用HttpHandler?,asp.net-mvc-3,Asp.net Mvc 3,我们正在将我们的旧Webapp从WebForms移植到MVC Asp.net,我已经在旧app上创建了用于基本报告的HttpHandlers 我们在点击按钮时直接调用它们,即www.something.com/handler.ashx?ID=1 现在我需要在MVC Asp.Net中移植相同的功能,编写处理程序是一项简单的任务,但是如何满足查询字符串并将请求路由到处理程序 您可以像其他应用程序一样使用普通处理程序,无需路由即可使用它 如果在IIS7集成模式下运行应用程序,则必须在system.we

我们正在将我们的旧Webapp从WebForms移植到MVC Asp.net,我已经在旧app上创建了用于基本报告的HttpHandlers

我们在点击按钮时直接调用它们,即www.something.com/handler.ashx?ID=1

现在我需要在MVC Asp.Net中移植相同的功能,编写处理程序是一项简单的任务,但是如何满足查询字符串并将请求路由到处理程序

  • 您可以像其他应用程序一样使用普通处理程序,无需路由即可使用它
  • 如果在IIS7集成模式下运行应用程序,则必须在system.webServer部分的handlers元素中定义http处理程序(httpHandlers部分适用于IIS6和IIS7经典模式)
  • 此外,它还提供了一个映像操作结果,该结果仅使用标准ASP.NET MVC生命周期

  • 复制自

    我必须在中的RouteConfig类中添加以下行,以避免在访问.ashx处理程序时出现404错误。处理程序是在Web.config中注册的,因此不使用ashx文件,因此另一个解决方案是使用.axd扩展名

    public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            // MVC routing is ignoring .axd paths by default.
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
            // This line added to also ignore .ashx files.
            routes.IgnoreRoute("{resource}.ashx/{*pathInfo}");
    
            // ...
        }
    }
    
    检查它是否可能包含答案