我最近开始使用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 ....
}
Run Code Online (Sandbox Code Playgroud)
基本上我想控制构建视图模型的时间以及何时验证它.这可能吗?如何实现CreateModel方法?考虑我可能想在此控制器操作中创建几个不同的视图模型.
*Rant:我真的不明白为什么在DefaultModelBinder中将视图模型绑定和验证混合在一起.好像代码味道.特别是当它很难覆盖这种行为时.