2011-08-18 38 views
2

我们正在将我们的旧Webapp从WebForms移植到MVC Asp.net,我已经创建了用于基本报告的旧应用程序的HttpHandlers。如何在MVC Asp.Net中调用HttpHandler?

我们直接打电话给他们,即www.something.com/handler.ashx?ID=1上的按钮点击。

现在我需要在MVC Asp.Net中移植相同的功能,编写处理程序是一件容易的任务,但是如何处理查询字符串并将请求传递给Handler?

+0

检查http://forums.asp.net/t/1320309.aspx/1?How+to+use+a+custom+HttpHandler+in+MVC+它可能包含答案 –

回答

2
  1. 您可以像其他应用程序一样使用处理函数,不需要使用它的路由。
  2. 如果以IIS7集成模式运行应用程序,则必须在system.webServer部分的处理程序元素(httpHandlers部分适用于IIS6和IIS7经典模式)中定义http处理程序。
  3. 还检查http://blog.maartenballiauw.be/post/2008/05/ASPNET-MVC-custom-ActionResult.aspx,它具有一个图像操作结果,它仅使用标准的ASP.NET MVC生命周期。

http://forums.asp.net/t/1320309.aspx/1?How+to+use+a+custom+HttpHandler+in+MVC+

0

我有以下行添加到我的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}"); 

     // ... 
    } 
} 
相关问题