ASP.NET MVC ビューエンジン

ビューエンジン
ASP.NET MVCのView(~.aspx)においてサーバー側でhtmlを動的に生成する処理。
コンパイラ?
・Webフォームビューエンジン(.aspx)
・Razroビューエンジン(.cshtml/.vbhtml)
の2種類から選択・使用できる

Webフォームビューエンジン(.aspx)におけるビュー記述例
<h1><%: product.ProductName %></h1>
<p><%: Html.ActionLink(“Add…”, “Add”) %></p>
Razorビューエンジン(.cshtml/.vbhtml)におけるビュー記述例
<h1>@product.ProductName</h1>
<p>@Html.ActionLink(“Add…”, “Add”)</p>

従来型(Webフォーム)のメリット
多様なサーバーコントロールを配置するだけで素早く、簡単に実装できる。
従来型(Webフォーム)のデメリット
コンパイル後、idやスタイルが自動的に書き換えられるので、
CSS等でデザインしにくい。

MVC(レンダリングエンジン使用)のメリット
ビューエンジンを用いてhtmlを生成できるのでCSS等でのデザインがやりやすい。

MVC(レンダリングエンジン使用)のメリット
Webフォームにおけるサーバーコントロールが使えない。
<div>
  ※↓@{~}内ではC#のプログラムを書ける
  @{
    SortedList<int, stringg> myList = new SortedList<int, string>
    {
      {10,”香川”},
      {11,”大久保”},
      {9,”岡崎”},
      {4,”本田”}
    };
  }

  ※@{~}外でも↑で宣言した変数を@で参照できる
  @myList[key:10]</br/>
  @myList[key:4]</br/>

  @foreach (var elm in myList)
  {
    @elm.Key @elm.Value</br/>
  }
</div>

実行結果

  香川
  本田

  本田
  岡崎
  香川
  大久保