HttpContext e escrever um componente para ambas as WebForms e MVC
-
03-07-2019 - |
Pergunta
Eu estou escrevendo um componente que eu gostaria de ser capaz de usar tanto em aplicações web MVC e WebForms, mas eu não tenho certeza de como lidar com as diferenças entre como HttpContext é tratado.
Meu componente envolve um IHttpHandler (para WebForms) personalizado ou um ActionResult personalizado (por MVC).
Então eu tenho algumas perguntas:
- Existe uma maneira de usar um IHttpHandler com MVC sem quebrar o modelo?
- É aceitável usar HttpContext.Current ao tentar escrever código que irá trabalhar para ambos? Parece um pouco bruto-força-ish para mim (não sei porquê), mas a alternativa seria escrever e implementar um bastante detalhado interface para lidar com a abstração entre HttpContext e ControllerContext.
- Am I ir sobre isso completamente errado?
Solução
- Sim, você pode apenas usar
routes.IgnoreRoute("MyHandler.ashx")
. Ele vai cair de volta para a manipulação ASP.NET original sem quebrar o modelo. - Não, eu acho que é perfeitamente OK usar
HttpContext.Current
. Eu acho que quando você está escrevendo seu próprio manipulador, MVC não é muito aplicável. Você está escrevendo seu código para ASP.NET , não ASP.NET MVC ou ASP.NET Web Forms. É fácil para torná-lo trabalhar em ambos os modelos (funciona OOTB com formulários Web, com IgnoreRoute em MVC). Você pode fazer coisa mais complicada do que deveriam ser! Lembre-se, o único propósito de padrões de projeto (como MVC) é a simplicidade. Não faça as coisas complicadas! -
goto 2;
Basta escrever um manipulador simples!
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow