2009-01-05 5 views
1

Je suis en train d'écrire un composant que j'aimerais utiliser dans les applications web MVC et WebForms, mais je ne suis pas sûr de savoir comment gérer les différences entre HttpContext est gérée.HttpContext et l'écriture d'un composant pour WebForms et MVC

Mon composant implique un IHttpHandler personnalisé (pour WebForms) ou un objet ActionResult personnalisé (pour MVC).

J'ai quelques questions:

  • Est-il possible d'utiliser un IHttpHandler avec MVC sans casser le modèle?
  • Est-il acceptable d'utiliser HttpContext.Current en essayant d'écrire du code qui fonctionnera pour les deux? Cela me semble un peu brutal (je ne sais pas pourquoi), mais l'alternative serait d'écrire et d'implémenter une interface assez verbeuse pour gérer l'abstraction entre HttpContext et ControllerContext.
  • Est-ce que je vais complètement à tort?

Répondre

2
  1. Oui, vous pouvez simplement utiliser routes.IgnoreRoute("MyHandler.ashx"). Il va revenir à la gestion ASP.NET d'origine sans casser le modèle. Non, je pense que c'est tout à fait OK d'utiliser HttpContext.Current. Je pense que lorsque vous écrivez votre propre gestionnaire, MVC n'est pas très applicable. Vous écrivez votre code pour ASP.NET, pas ASP.NET MVC ou ASP.NET Web Forms. Il est facile de le faire fonctionner sur les deux modèles (fonctionne OOTB avec des formulaires Web, avec IgnoreRoute dans MVC). Vous pourriez rendre la chose plus compliquée que ce qu'elle devrait être! Rappelez-vous, le seul but des modèles de conception (tels que MVC) est la simplicité. Ne pas compliquer les choses!
  2. goto 2; Il suffit d'écrire un gestionnaire simple!
+0

Bonne réponse, merci! :) –

Questions connexes