Asp.net-wp-view-engines
提供:Dev Guides
ASP.NET WP-ビューエンジン
ASP.NETのView Engineは、ビューをHTMLに変換してからブラウザーにレンダリングするために使用されます。 デフォルトでは、ASP.Netは ASPX および Razor View Engine をサポートしています。 ビューエンジンテンプレートには、実装とは異なる構文があります。 この章では、次の2つの最も重要なビューエンジンについて説明します。
ASPX View EngineはWeb Form View Engineとしても知られ、
Razor View Engine
ASPX View Engine
ASPXまたはWebフォームエンジンは、ASP.NET MVCに最初から組み込まれているASP.NETのデフォルトビューエンジンです。
- ASPX View Engineを使用してビューを作成するために使用される構文は、ASP.NET Webフォームで使用される構文と同じです。
- ファイル拡張子もASP.NET Webフォームと同じです(.aspx、.ascx、.masterなど)。
- ASPXは、「<%=%>」または「<%:%>」を使用して、サーバー側のコンテンツをレンダリングします。
- Webform Engineの名前空間は System.Web.Mvc.WebFormViewEngine です。
- ASPX View Engineは、デフォルトでクロスサイトスクリプティング攻撃を回避しません。
- ASPX View Engineは、Razor View Engineよりも比較的高速です。
Razor View Engine
Razor Engineは、 MVC3 で導入された高度なビューエンジンです。 これは新しい言語ではありませんが、新しいマークアップ構文です。
- Razor構文は、C#プログラミング言語に基づいています。
- Razor構文はVisual Basic言語もサポートしています。C#を使用して行うすべてのことは、Visual Basicでも同様に行えます。
- Razor Engineの名前空間は System.Web.Razor です。
- Razorは、ASPX View Engineで使用される「<%%>」の代わりに「@」文字を使用します。
- Razorファイル拡張子は、C#言語の「cshtml」です。
- デフォルトでは、Razor View EngineはHTMLタグまたはスクリプトをエンコードしてビューにレンダリングし、クロスサイトスクリプティング攻撃を回避します。
- Razor View Engineは、ASPX View Engineと比較して低速です。
構文の違い
構文の違いを理解するために、ASPXビューエンジンとRazorビューエンジンの両方で記述された簡単な例を見てみましょう。 ASPXビューエンジンのコードスニペットを次に示します。
以下は、Razor Viewエンジンで記述された同じサンプルコードです。
ASPXとRazorシンタックスで記述された上記のコードスニペットの両方を見ると、RazorシンタックスがASPXシンタックスと比較してクリーンでシンプルであることがはっきりとわかります。 Razorの欠点の1つは、Dream Viewerなどのビジュアルエディターでサポートされていないことです。