Posts tagged: MVC2

.Net MVC2でViewModelを使う場合の注意


 

フォームから入力された情報をDBに反映するためにUpdateModelを使用する場合、
updateされる側(UpdateModelの引数)も同じ方の階層である必要がある。

ビューモデルとして用意したクラス、ItemViewModelには、
ItemInfoというエンティティのプロパティがあるものとする。

Inherits="System.Web.Mvc.ViewPage
<Models.ItemInfoViewModel>"

などとして、ASPXでViewModelを使用するようにした場合、ItemInfoのプロパティItemNameにアクセスするには
model.ItemInfo.ItemName
などと書かなければならない。

こう書いた場合、レンダリングされたHTMLでは、そのフォーム要素の要素名は
name="ItemInfo.ItemName"
となる。

UpdateModelは、このようにドットによって階層を表現されたフォーム要素を、
ターゲットとなるオブジェクトの階層構造に当てはめる。
(ViewModelを使用しない場合は、単に階層がないだけだ)

[HttpPost]のEdit、つまり、更新処理を書いている時、これが分かってなくて頭を捻った。

Read more »

WordPress Themes