当使用MVC和您的数据转换成的ViewModels这是做到这一点的接受的方式?

目前我使用AutoMapper做到这一点,它的运作良好。但是我没有看到在具有上视图模型构造这需要需要则params的数目的博客文章(我认为这是罗布C),然后生成视图模型

例如var RetViewModel = new ViewModel(MyObject);

这似乎是在做一个体面的方式吧,想法吗?

有帮助吗?

解决方案

在“接受的方式”一般是最适合你的方式。

我从来没有听说过AutoMapper的,当我看着它,我得到了什么是它按照一定的约定产生神奇的对象映射。

截屏于: http://www.dnrtv.com/default.aspx? showNum = 155

请注意:我只看过有关截屏的一半,所以我对AutoMapper的想法是有些不完整

我个人不希望使用它,因为它要求我写额外的代码映射/对象属性(代码,国际海事组织,在构造逻辑更好左)之间的“扁平化”。在截屏示例,该代码通常放置在一控制器,其可导致腹胀的作用的方法。(我喜欢瘦控制器/动作)

我用您在您的文章给了方法,具有模型的构造需要一个对象,并完成所有的工作。

此外,我总是创建一个空的构造不带参数,这样我可以手动设置视图模型对象的属性值。

示例:

CustomViewModel myModle = new CustomViewModle
{
    Property1 = "Something",
    Property2 = 3,
    //etc..
};

要总结,尝试两种方式,看看你的作品。 AutoMapper是一个伟大的想法,我可以看到它帮助在许多情况下,但是,我认为在某些点上,当你使用它,你会使用它,如果你使用对象构造函数来编写大量代码。

其他提示

那么,“官方推荐”的办法是让模型绑定机制处理,对你。这是简单和自动化的过程。该模型将具有以暴露其属性是读写用于粘合剂,以便能够对其进行初始化。

你在谈论可能会采取让你的模型不可变对象利益的第二个选项。也就是说,你让所有的属性为只读,并通过构造函数的参数,一旦对它们进行初始化。这就要求你考虑的FormCollection直接拔出提交的值。即更多的工作,但有像被一种类型的防御性编程的其自身的优点。

我不能说哪种方式更好,两者的选择。我个人比较喜欢第二种风格现在。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top