【问题标题】:HttpContext and writing a component for both WebForms and MVCHttpContext 并为 WebForms 和 MVC 编写组件
【发布时间】:2009-01-05 17:05:02
【问题描述】:

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

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

所以我有几个问题:

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

【问题讨论】:

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


    【解决方案1】:
    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; 只写一个简单的处理程序!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-06
      • 1970-01-01
      • 2023-04-02
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-13
      相关资源
      最近更新 更多