ASP.NET マスター ページと MVC マスター ページの違いは何ですか? AJAX マスター ページについてはどうでしょうか。
3 に答える
ほとんどの場合、デフォルトのコントロールと継承に帰着します。
AJAX マスターと ASP.NET マスターは両方とも System.Web.UI.MasterPage から継承し、MVC マスターは ViewMasterPage から継承します。
明らかに、これらはこれに関してわずかに異なる制御を提供します - John Claytonが述べたように、ViewMasterPage は他の MasterPages では利用できない Ajax/Html/Url ヘルパーなどを公開します。
それ以外は、デフォルトのコントロールが若干異なります。
- ASP.NET マスター ページには、既定のフォームと 2 つの ContentPlaceHolder コントロール (ヘッドに 1 つ、フォームに 1 つ) があります。
- AJAX マスター ページでは、フォーム コントロール内に ScriptManager コントロールも追加されます。
- MVC マスター (バージョンによって異なります - 私はベータ版を参照しています) には、2 つの ContentPlaceHolder コントロール (ヘッドとボディ) しかありません。
「ライフサイクルの違い」は、MasterPage/ViewMasterPage コントロールではなく、Page/ViewPage に由来します。
MVC の ViewMasterPage は、ViewPage と同じヘルパーを公開するマスター ページにすぎません。これにより、AjaxHelper、HtmlHelper、TempDataDictionary、UrlHelper、ViewContext、ViewData、および HtmlTextWriter にアクセスできるようになります。
ViewPage と同様に、WebFormsViewEngine (デフォルト) を使用している場合は、ページのライフサイクル イベントをオーバーロードしたいという衝動に何としても抵抗する必要があります。それらはまだそこにあり、内部で ProcessRequest(...) がまだページで呼び出されているため、引き続き実行されます。
どの AJAX マスター ページを参照していますか? フレームワークに含まれているものには慣れていません...
簡単に言えば、答えは「ライフサイクル」だと言わざるを得ません。ASP.NET WebForms、MVC、および AJAX はすべて、マスター ページ コントロールによって応答する必要があるイベントに影響を与えるさまざまなライフサイクルを持っています。WebForms マスター ページは、Load、DataBind、PreRender、Render などに応答する必要があります。MVC マスター ページは、おそらく (これについては不明ですが) Render アクションのみが必要です。他のすべてのイベントは不要であり、同等のコードがコントローラーで見つかります。最後に、AJAX マスター ページは、通常のリクエストに加えて AJAX リクエストを処理する必要があります。
私が言ったように、これはちょっとした推測なので、もっと研究することをお勧めします