这是我的问题:
我们有一个内部网asp.net mvc 3应用程序,其中包含一组受控用户。我们有一个Person类,它包含大量信息,最初加载并存储在会话中。此对象的数据/编辑跨越许多屏幕。基本上,每个屏幕都是Person数据的子集。
我正在尝试利用asp.net mvc中的内置模型绑定。我应该创建一个数据类来绑定每个屏幕的表单数据,然后使用服务对象更新我的会话对象吗?
以下示例:DxFormData包含人员数据的子集,仅用作此方法的参数。
public ActionResult Dx(DxFormData data)
{
// Update current session Person object with data passed in if modelstate is valid
var viewModel = this.GetDxViewModel();
return View(viewModel);
}
public class DxForm Data
{
public string AdmitDx { get; set; }
public string PrinDx { get; set; }
}
我正在寻找有关这种方法的想法,以及是否有更好的解决方案可供我使用。我看到的问题是person类包含所有数据,我正在创建另一个包含该数据子集的类。显然,重复属性。
旁注:我确实编写了一个自定义模型绑定器,它返回了会话人员以进行绑定。但是,我在尝试绑定时不断收到错误。
答案 0 :(得分:0)
我认为这种方法没有问题。如果您尝试使用Parent
类作为操作参数,那么在每个表单提交操作中,您将获得验证错误,因为模型未完全填充,因此您应该在这种情况下使用视图模型,不幸的是您可以'避免重复属性。