1

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

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

所以我有几个问题:

  • 有没有办法在不破坏模型的情况下将 IHttpHandler 与 MVC 一起使用?
  • 在尝试编写适用于两者的代码时使用 HttpContext.Current 是否可以接受?对我来说这似乎有点暴力(不知道为什么),但替代方案是编写和实现一个相当冗长的接口来处理 HttpContext 和 ControllerContext 之间的抽象。
  • 我会完全错了吗?
4

1 回答 1

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;只需编写一个简单的处理程序!
于 2009-01-05T17:58:08.453 回答