【问题标题】:MVC3 viewmodel and domain model questionMVC3 视图模型和域模型问题
【发布时间】:2011-09-15 00:24:32
【问题描述】:

假设我有一个域级别的“Person”类,其中包含很多属性(名字、姓氏、年龄、地址、电话、电子邮件地址等)。出于视图的目的,我只需要传递 Age 属性。越小越好,因为集合作为 JSON 字符串传递给客户端。

管理此问题的最佳方法是什么?

1) 我是否创建一个匿名类型集合并将其传递给视图?

2) 我是否创建一个只包含“Age”属性的新“ViewModelPerson”类型。

3) 我是否创建一个新的域“Person”超类型并让我的 Person 和 ViewModelPerson 派生自它(似乎是一种复杂的做事方式)。

那么,将这些详细信息保存到我的服务器上的最佳方法是什么(即将年龄值传递到域人员对象的集合中?

编辑:

抱歉,我应该说我会返回一个 Person 对象的集合(每个对象只有一个 Age 属性)。

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    1)我认为不可能,请详细说明

    2) 是的!不过我会称它为 PersonAgeViewModel。

    3) 确实非常复杂,除非您知道您将大量从 Person 派生并且计划在数据库中实现 TPH 或 TBT。

    【讨论】:

      【解决方案2】:

      如果您只想发送年龄(单个年龄),则根本不要在视图中指定模型。将年龄的值添加到 ViewBag。

      查看Hajan's Blog Entry

      【讨论】:

        【解决方案3】:

        称我为迂腐,但我倾向于创建具有单一年龄属性的 ViewModel。除非您在视图中构建 JSON,否则我不确定 ViewBag 方法是否有效。通常,当我们返回 JSON 时,我们只使用

        返回 Json(模型);

        我绝对建议不要在域模型和视图模型之间使用通用的基本类型。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多