代码之家  ›  专栏  ›  技术社区  ›  Jamie Dixon

用元组替换视图模型

  •  0
  • Jamie Dixon  · 技术社区  · 15 年前

    我刚刚开始了一个新的项目,它目前包含了一些ViewModelDTO类。

    我想知道用元组替换这些DTO中的许多,并将其用作将大量对象转移到视图中的方法是否有用,甚至是良好的实践。

    你怎么认为?这是元组的正确用法,还是我不在这里?

    3 回复  |  直到 8 年前
        1
  •  2
  •   Darin Dimitrov    15 年前

    通常视图模型都有与之相关联的元数据,这些元数据允许您执行验证并与编辑器/显示模板集成。元组似乎不合适。另一个缺点是它们表达的视图模型中每个属性的目的不太清楚( Model.Item1 , Model.Item2 ,…,除了最初的开发人员,没有其他人能理解这一点,如果几天后他像我一样,即使他也无法理解)。

        2
  •  1
  •   Matthew Abbott    15 年前

    我在使用元组时看到的一个问题是,在您的视图中:

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

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

    Model.Item1,
    Model.Item2
    

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

        3
  •  0
  •   Andy    8 年前

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

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