1

MVC と WebForms の両方の Web アプリで使用できるコンポーネントを作成していますが、HttpContext の処理方法の違いを処理する方法がわかりません。

私のコンポーネントには、カスタム IHttpHandler (WebForms 用) またはカスタム ActionResult (MVC 用) が含まれています。

だから私はいくつかの質問があります:

  • モデルを壊さずに MVC で IHttpHandler を使用する方法はありますか?
  • 両方で機能するコードを作成しようとしているときに HttpContext.Current を使用することは許容されますか? 私には少し力ずくのように思えますが (理由はわかりません)、別の方法として、HttpContext と ControllerContext の間の抽象化を処理するかなり冗長なインターフェイスを記述して実装することもできます。
  • 私はこれについて完全に間違っていますか?
4

1 に答える 1

2
  1. はい、そのまま使用できますroutes.IgnoreRoute("MyHandler.ashx")。モデルを壊すことなく、元の ASP.NET 処理にフォールバックします。
  2. いいえ、使用しても問題ないと思いますHttpContext.Current。独自のハンドラーを作成する場合、MVC はあまり適用されないと思います。ASP.NET MVC または ASP.NET Web フォームではなく、 ASP.NETのコードを記述しています。両方のモデルで動作させるのは簡単です (OOTB では Web フォームで動作し、MVC では IgnoreRoute で動作します)。あなたは物事を本来よりも複雑にしているかもしれません! 設計パターン (MVC など) の唯一の目的は単純化であることを忘れないでください。物事を複雑にしないでください!
  3. goto 2;簡単なハンドラを書くだけです!
于 2009-01-05T17:58:08.453 に答える