用元组替换ViewModels

时间:2010-07-06 16:48:37

标签: c# asp.net-mvc-2 viewmodel tuples

我刚开始一个新项目,目前包含一些ViewModel DTO课程。

我想知道用元组替换许多这些DTO是否有用甚至是好的做法,并将其作为我将一堆对象转移到我的视图的方法。

你怎么看?这是元组的正确用法还是我的标记?

3 个答案:

答案 0 :(得分:2)

通常,视图模型具有与之关联的元数据,这些元数据允许您执行验证并与编辑器/显示模板集成。元组似乎不合适。另一个缺点是它们不太清楚地表达了视图模型中每个属性的目的(Model.Item1Model.Item2,...,除了原始开发人员之外没有其他人可以理解这一点,并且如果他在几天之后就像我一样,他甚至无法理解。)

答案 1 :(得分:1)

我在使用元组时遇到的一个问题是,在您看来:

inherits="ViewPage<Tuple<Model1, Model2>>"

...等,当您使用这些模型时,您必须以下列方式访问它们:

Model.Item1,
Model.Item2

...这不像使用一个好的强类型视图模型那么清晰。

答案 2 :(得分:0)

在C#7中,您现在可以命名项目 - 下面的代码几乎是一个免费的映射器,我认为可以替换不需要附加任何行为的DTO。

    public (string first, string last, int age) GetTuple()
    {
        return ("John", "Connor", 1);
    }