0

这是我的问题:

我们有一个带有一组受控用户的 Intranet 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 类包含所有数据,而我正在使用该数据的子集创建另一个类。显然,复制属性。

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

4

1 回答 1

0

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

于 2012-11-07T16:44:32.373 回答