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

    *Spark、Nhaml* など、さらに多くのサードパーティビューエンジンがあります。

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ビューエンジンのコードスニペットを次に示します。

<%foreach (var student in Students){ %>

   <% if (student.IsPassed){ %>
      <% = student.FirstName%> is going to next grade.
   <% } else{ %>
      <% = student. FirstName %> is not going to next grade.
   <% } %>

<% } %>

以下は、Razor Viewエンジンで記述された同じサンプルコードです。

@foreach (var student in Students){
   @if(student.IsPassed){
      @student. FirstName is going to next grade.
   } else {
      @student. FirstName is not going to next grade.
   }
}

ASPXとRazorシンタックスで記述された上記のコードスニペットの両方を見ると、RazorシンタックスがASPXシンタックスと比較してクリーンでシンプルであることがはっきりとわかります。 Razorの欠点の1つは、Dream Viewerなどのビジュアルエディターでサポートされていないことです。