ハイブリッド Web フォーム - MVC アプリケーションを作成できます。
これを行うには、次のことが必要です。
- MVC 構成を新しい MVC プロジェクトの web.config から WebForms アプリケーション web.config にコピーします。
- 標準の MVC 4 フォルダー (少なくともビュー、コントローラー) を作成します。
- 必要なアセンブリを参照する
- Views 内の web.config を MVC プロジェクトから WebForms プロジェクトの Views フォルダーにコピーします。
- ルーティング構成を変更して、.aspx/.ascx を含むルートを無視し、MVC ではなく Web フォームによって処理されるようにします (.ashx、.asmx、またはその他の Web フォーム ベースのアーティファクトに対してもこれを行います)。
このようにして、MVC と WebForms をサポートする単一の ASP.NET アプリケーションを作成し、同じ認証、セッションなどを使用します。
次に、この種の統合を行うことができます: - 完全に MVC または完全に Web フォームであるページを作成します。マスター ページを使用している場合は、Web フォーム用のマスター ページと MVC 用のレイアウトを作成する必要があります (コンテンツとデザインに応じて、これは非常に難しい場合と非常に簡単な場合があります) - Web フォーム ページを作成し、MVC を統合します。 AJAX および MVC 部分ビューを使用するページ
私のコメントから引用すると、このブログ エントリは大いに役立ちます: ASP.NET MVC 3 を既存のアップグレードされた ASP.NET 4 Web フォーム アプリケーションに統合する
ところで、これは理論上の話ではありません... 私は、この手法を使用する多数のページ、領域、およびビューを備えた Web アプリケーションを持っていますが、問題なく動作します。両方の種類のページが同じように見えるように、マスター ページのデザイン (レイアウトと CSS) をやり直す必要がありました。幸運なことに、SQL XML クエリと XSLT を使用して Web フォーム プレースホルダーにメニューをレンダリングすることができたので、MVC レイアウトでメニューを再利用するのは非常に簡単でした。マスター ページと MVC レイアウトでこれと同様のことを行うことができます (つまり、HTML を手動でレンダリングし、両方のページで使用して、一度だけ実行することを意味します)。
機能するまでに時間がかかる場合がありますが、努力する価値はあります。