実は、ASP.NET MVC 2 と全く同じですね。
- データベースから Entity Data Model を作る。
- モデルを利用したコントローラーを作成する。
- リストなどを表示させるビューを自動生成する。
ってな手順です。
こんな風なモデルを使って、
次のようにコントローラーを書いておきます。
このあたりは、ASP.NET MVC 2 と同じ。
public ActionResult List()
{
Models.mvcdbEntities ent = new Models.mvcdbEntities();
var model = ent.TProduct;
return View(model);
}
View の追加では、ASP.NET MVC 2 と違うのは、View engine の選択ですね。
これもデフォルトが Rasor になっています。ビューエンジン(レンダリングエンジン)は、ページごとに切り替えられるようです。
で、自動生成した結果がこれ。
@model IEnumerable<MvcApplication1.Models.TProduct>
@{
ViewBag.Title = "List";
}
<h2>List</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
<th></th>
<th>
name
</th>
<th>
price
</th>
<th>
cateid
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.id }) |
@Html.ActionLink("Details", "Details", new { id=item.id }) |
@Html.ActionLink("Delete", "Delete", new { id=item.id })
</td>
<td>
@item.name
</td>
<td>
@item.price
</td>
<td>
@item.cateid
</td>
</tr>
}
</table>
実行結果は、ASP.NET MVC 2 と同じ。
Rasor のレンダリングエンジンを使うと、「@なんとか」で C# や Visual Basic のコードが書けます。
今までの aspx のコードは「<% … %>」で書いていたので、「@{ … }」と書けて便利。と言いますか、メリットはそれだけなのか?ちょっと、これはもう少し調べてみないとわかりませんが。
ただ、aspx と Razor の違いは、
- aspx は、HTML 形式の中に、<% … %> でコードを埋め込む。
- Razor は、HTML 形式の中に、@{ … } で、コードを埋め込む。
- Razor は、コードの中に、ヒアドキュメント風に <text>…</text> で HTML 形式を埋め込む。
のところですね。
プロパティを使って表示するところは <%: item.name %> から、@item.name のように「@」マークひとつで書けるので、コードがすっきりしているといえばそうなのですが、PHP に慣れてくると、<?php … ?> で十分かぁと思ってしまうからなぁ。
このあたりは、
CakePHP: 高速開発 php フレームワーク。 Home
http://cakephp.jp/
との相互運用(相互補完?)とか考えてみたり。


