【发布时间】:2010-07-06 16:48:37
【问题描述】:
我刚刚开始了一个新项目,该项目目前包含相当多的 ViewModel DTO 类。
我想知道用元组替换许多这些 DTO 并将其用作将一堆对象传输到我的视图的方法是否有用,甚至是良好的做法。
你怎么看?这是元组的正确用法还是我在这里偏离了标记?
【问题讨论】:
标签: c# asp.net-mvc-2 viewmodel tuples
我刚刚开始了一个新项目,该项目目前包含相当多的 ViewModel DTO 类。
我想知道用元组替换许多这些 DTO 并将其用作将一堆对象传输到我的视图的方法是否有用,甚至是良好的做法。
你怎么看?这是元组的正确用法还是我在这里偏离了标记?
【问题讨论】:
标签: c# asp.net-mvc-2 viewmodel tuples
通常视图模型具有与之关联的元数据,其中允许您执行验证并与编辑器/显示模板集成。元组似乎不合适。另一个缺点是它们不太清楚地表达视图模型中每个属性的用途(Model.Item1,Model.Item2,...,只有原始开发人员才能理解这一点,如果他喜欢几天后我连他都说不通了)。
【讨论】:
我在使用元组时看到的一个问题是,在您看来:
inherits="ViewPage<Tuple<Model1, Model2>>"
...等,当您使用这些模型时,您必须以如下方式访问它们:
Model.Item1,
Model.Item2
...这不像使用一个好的强类型视图模型那么清楚。
【讨论】:
在 C#7 中,您现在可以命名项目 - 下面的代码几乎是一个免费的映射器,我认为它可以替换不需要附加任何行为的 DTO。
public (string first, string last, int age) GetTuple()
{
return ("John", "Connor", 1);
}
【讨论】: