質問

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

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

だから、いくつか質問があります:

  • モデルを壊さずにMVCでIHttpHandlerを使用する方法はありますか?
  • HttpContext.Currentを使用して、両方で機能するコードを記述しようとしても問題ありませんか?私には少し強引に思えます(理由はわかりません)が、代替手段は、かなり冗長なインターフェイスを記述して実装し、HttpContextとControllerContextの間の抽象化を処理することです。
  • これについてまったく間違っていますか?
役に立ちましたか?

解決

  1. はい、単に routes.IgnoreRoute(" MyHandler.ashx")を使用できます。モデルを壊さずに、元のASP.NET処理にフォールバックします。
  2. いや、 HttpContext.Current を使用してもまったく問題ないと思います。独自のハンドラーを作成している場合、MVCはあまり適切ではないと思います。 ASP.NET MVCまたはASP.NET Web Formsではなく、 ASP.NET のコードを記述しています。両方のモデルで簡単に動作させることができます(MVCのIgnoreRouteを使用して、WebフォームでOOTBを動作させます)。本来あるべきものよりも複雑にするかもしれません!設計パターン(MVCなど)の唯一の目的はシンプルであることを忘れないでください。物事を複雑にしないでください!
  3. goto 2; 単純なハンドラを書くだけです!
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top