HttpContextおよびWebFormsとMVCの両方のコンポーネントの作成
-
03-07-2019 - |
質問
MVCとWebFormsの両方のWebアプリで使用できるようにしたいコンポーネントを作成していますが、HttpContextの処理方法の違いをどのように処理するかわかりません。
私のコンポーネントには、カスタムIHttpHandler(WebFormsの場合)またはカスタムActionResult(MVCの場合)が含まれます。
だから、いくつか質問があります:
- モデルを壊さずにMVCでIHttpHandlerを使用する方法はありますか?
- HttpContext.Currentを使用して、両方で機能するコードを記述しようとしても問題ありませんか?私には少し強引に思えます(理由はわかりません)が、代替手段は、かなり冗長なインターフェイスを記述して実装し、HttpContextとControllerContextの間の抽象化を処理することです。
- これについてまったく間違っていますか?
解決
- はい、単に
routes.IgnoreRoute(" MyHandler.ashx")
を使用できます。モデルを壊さずに、元のASP.NET処理にフォールバックします。 - いや、
HttpContext.Current
を使用してもまったく問題ないと思います。独自のハンドラーを作成している場合、MVCはあまり適切ではないと思います。 ASP.NET MVCまたはASP.NET Web Formsではなく、 ASP.NET のコードを記述しています。両方のモデルで簡単に動作させることができます(MVCのIgnoreRouteを使用して、WebフォームでOOTBを動作させます)。本来あるべきものよりも複雑にするかもしれません!設計パターン(MVCなど)の唯一の目的はシンプルであることを忘れないでください。物事を複雑にしないでください! -
goto 2;
単純なハンドラを書くだけです!
所属していません StackOverflow