模型绑定到现有会话对象应该使用什么方法?

时间:2012-11-07 15:46:33

标签: c# asp.net-mvc

这是我的问题:

我们有一个内部网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类包含所有数据,我正在创建另一个包含该数据子集的类。显然,重复属性。

旁注:我确实编写了一个自定义模型绑定器,它返回了会话人员以进行绑定。但是,我在尝试绑定时不断收到错误。

1 个答案:

答案 0 :(得分:0)

我认为这种方法没有问题。如果您尝试使用Parent类作为操作参数,那么在每个表单提交操作中,您将获得验证错误,因为模型未完全填充,因此您应该在这种情况下使用视图模型,不幸的是您可以'避免重复属性。