4

.NET 4.5 で実行されている既存の ASP.NET Web サイトがあります。ASP MVC 4 プロジェクト (完全に機能する独自の Web アプリケーション) をそれに統合して、ユーザーが特定のページに移動したときに ASP MVC アプリケーションがページ内で起動されるようにする必要があります。iframe.

メイン ソリューションでは、両方をスタートアップ プロジェクトとして設定できますが、これは明らかに私が探しているものではありません。誰かがこれを行う方法の方向に私を向けることができますか? 今までWCFを使ったことがないのですが、これは使えるものでしょうか?何から何までありがとう!

4

1 に答える 1

0

ハイブリッド 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 を手動でレンダリングし、両方のページで使用して、一度だけ実行することを意味します)。

機能するまでに時間がかかる場合がありますが、努力する価値はあります。

于 2013-05-10T20:14:26.917 に答える