HttpContext并为WebForms和MVC编写组件

时间:2009-01-05 17:05:02

标签: asp.net asp.net-mvc webforms httpcontext ihttphandler

我正在编写一个我希望能够在MVC和WebForms Web应用程序中使用的组件,但我不确定如何处理HttpContext的处理方式之间的差异。

我的组件涉及自定义IHttpHandler(用于WebForms)或自定义ActionResult(用于MVC)。

所以我有几个问题:

  • 有没有办法在不破坏模型的情况下将IHttpHandler与MVC一起使用?
  • 在尝试编写适用于两者的代码时,是否可以使用HttpContext.Current?对我来说似乎有点暴力(不确定原因),但另一种选择是编写并实现一个相当冗长的接口来处理HttpContext和ControllerContext之间的抽象。
  • 我完全错了吗?

1 个答案:

答案 0 :(得分:2)

  1. 是的,您可以使用routes.IgnoreRoute("MyHandler.ashx")。它将在不破坏模型的情况下回归到最初的ASP.NET处理。
  2. 不,我认为使用HttpContext.Current是完全可以的。我认为当你编写自己的处理程序时,MVC不太适用。您正在编写 ASP.NET 的代码,而不是ASP.NET MVC或ASP.NET Web窗体。很容易让它在两个模型上工作(使用Web表单进行OOTB,使用MVC中的IgnoreRoute)。你可能会让事情变得更加复杂!请记住,设计模式(例如MVC)的唯一目的是简单性。不要让事情变得复杂!
  3. goto 2;只需写一个简单的处理程序!