HttpContext и написание компонента как для WebForms, так и для MVC
-
03-07-2019 - |
Вопрос
Я пишу компонент, который я хотел бы иметь возможность использовать как в веб-приложениях MVC, так и в WebForms, но я не уверен, как обрабатывать различия между тем, как обрабатывается HttpContext.
Мой компонент включает пользовательский IHttpHandler (для WebForms) или пользовательский ActionResult (для MVC).
Итак, у меня есть несколько вопросов:
- Есть ли способ использовать IHttpHandler с MVC, не нарушая модель?
- Допустимо ли использовать HttpContext.Current при попытке написать код, который будет работать для обоих?Мне это кажется немного грубоватым (не уверен, почему), но альтернативой было бы написание и реализация довольно подробного интерфейса для обработки абстракции между HttpContext и ControllerContext.
- Неужели я поступаю совершенно неправильно?
Решение
- Да, вы можете просто использовать
routes.IgnoreRoute("MyHandler.ashx")
.Все вернется к оригиналу ASP.NET обработка без нарушения модели. - Нет, я думаю, что это совершенно нормально для использования
HttpContext.Current
.Я думаю, что когда вы пишете свой собственный обработчик, MVC не очень применим.Вы пишете свой код для ASP.NET, а не ASP.NET MVC или ASP.NET Веб-формы.Легко заставить его работать на обеих моделях (работает OOTB с веб-формами, с IgnoreRoute в MVC).Вы можете усложнить ситуацию больше, чем она должна быть!Помните, что единственная цель шаблонов проектирования (таких как MVC) - простота.Не усложняй ситуацию! goto 2;
Просто напишите простой обработчик!
Не связан с StackOverflow