Pregunta

Estoy escribiendo un componente que me gustaría poder usar en las aplicaciones web MVC y WebForms, pero no estoy seguro de cómo manejar las diferencias entre cómo se maneja HttpContext.

Mi componente implica un IHttpHandler personalizado (para WebForms) o un ActionResult personalizado (para MVC).

Entonces tengo algunas preguntas:

  • ¿Hay alguna manera de usar un IHttpHandler con MVC sin romper el modelo?
  • ¿Es aceptable usar HttpContext.Current al intentar escribir código que funcione para ambos? Me parece un poco de fuerza bruta (no estoy seguro de por qué), pero la alternativa sería escribir e implementar una interfaz bastante detallada para manejar la abstracción entre HttpContext y ControllerContext.
  • ¿Estoy haciendo esto completamente mal?
¿Fue útil?

Solución

  1. Sí, puede usar las rutas .IgnoreRoute (" MyHandler.ashx ") . Volverá al manejo original de ASP.NET sin romper el modelo.
  2. No, creo que está perfectamente bien usar HttpContext.Current . Creo que cuando está escribiendo su propio controlador, MVC no es muy aplicable. Está escribiendo su código para ASP.NET , no para ASP.NET MVC o ASP.NET Web Forms. Es fácil hacerlo funcionar en ambos modelos (funciona OOTB con formularios web, con IgnoreRoute en MVC). ¡Podría hacer las cosas más complicadas de lo que deberían ser! Recuerde, el único propósito de los patrones de diseño (como MVC) es la simplicidad. ¡No compliques las cosas!
  3. goto 2; ¡Simplemente escriba un controlador simple!
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top