使用ViewModels,我想拆分它们:
public SignUpViewModel //for display
{
public SignUpUserViewModel SignUpUserViewModel { get; set; } //for validation
public IEnumerable<SelectListItem> UserTypes {get;set;}
}
所以我想呈现SignUpViewModel,但是将SignUpUserViewModel作为POST-action的参数。
你觉得这个合理吗?有哪些方法可以实现这种方法?看起来DefaultModelBinder不能以这种方式工作:它不理解SignUpUserViewModel是SignUpViewModel的属性。所以我看到的一种方法是实现自定义模型绑定器。还有其他吗?
答案 0 :(得分:1)
我认为这是合理的。只需将您的帖子操作绑定到SignUpUserViewModel
。
E.g。
[HttpPost]
public ActionResult Edit(int id, SignUpUserViewModel editForm)
在旁注上,查看您的SignUpViewModel
vs SignUpUserViewModel
,我认为您可以将它们合并到一个视图模型中。
在说我会说我有时也会采用类似的设置,例如ViewModel
和一个孩子FormModel
(发布并绑定到FormModel
)但是我将表格与验证和{{{中的SelectListItems 1}}。所以在上面的例子中,我只是将它们组合成一个FormModel。