Как вызвать HttpHandler в MVC Asp.Net? - PullRequest
2 голосов
/ 18 августа 2011

Мы переносим наше старое веб-приложение из WebForms в MVC Asp.net, у меня есть старые HttpHandlers для старого приложения, используемого для базовых отчетов.

Мы звонили им напрямую, т.е. www.something.com/handler.ashx? ID = 1 при нажатии кнопки.

Теперь мне нужно перенести ту же функциональность в MVC Asp.Net, кодирование обработчика было простой задачей, но как мне обработать строку запроса и направить мой запрос наОбработчик?

Ответы [ 2 ]

2 голосов
/ 24 августа 2011
  1. Вы можете использовать обычный обработчик, как и другие приложения, нет необходимости в маршрутах для его использования.
  2. Если вы запускаете приложение в интегрированном режиме IIS7, обработчик http должен быть определен в элементе handlers раздела system.webServer (раздел httpHandlers работает для режимов IIS6 и IIS7 Classic).
  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 голосов
/ 02 октября 2013

Мне пришлось добавить следующую строку в мой класс RouteConfig, чтобы избежать ошибки 404 при доступе к обработчику .ashx.Обработчик был зарегистрирован в 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}");

        // ...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...