最近MVCを使い始めましたが、少しがっかりしています。私を助ける代わりに、フレームワークが私の邪魔をしています。
私はこのようなコントローラーアクションを書き込もうとしています(擬似コード)
ActionResult Save(long id, string whichForm)
{
if (whichForm == "A")
{
var vm = CreateModel(Request.Form);
if (!TryValidate(vm))
return View(vm);
else
return RedirectToRoute("Success");
}
else ....
}
基本的に、ビューモデルがいつ構築され、いつ検証されるかを制御したいと思います。これは可能ですか?CreateModelメソッドを実装するにはどうすればよいですか?このコントローラーアクション内にいくつかの異なるビューモデルを作成したいと思うかもしれません。
* Rant:DefaultModelBinderでビューモデルのバインドと検証が混在している理由がよくわかりません。コードの臭いのようです。特に、この動作を無効にするのが難しい場合。