我最近开始使用 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 方法?考虑一下我可能想在这个控制器动作中创建几个不同的视图模型。
*咆哮:我真的不明白为什么视图模型绑定和验证在 DefaultModelBinder 中混合在一起。看起来像代码气味。特别是当很难覆盖这种行为时。