最近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:ViewModelのバインディングと検証がDefaultModelBinderで混在している理由は分かりません。コードの臭いのようです。特にこの動作を無効にするのが難しい場合。
downvoteありがとう、コメントを残して? :-) – Kugel
+1彼らはあなたの* Rantが気に入らなかったかもしれませんが、あなたの意見には資格があります。質問の結果が良い答えである場合、問題はきれいなIMOです。 – AaronLS