c# - 查看模型 Asp.Net MVC

标签 c# asp.net-mvc asp.net-mvc-2

当使用 MVC 并将您的数据转换为 ViewModel 时,哪种方式是可接受的?

目前我正在使用 AutoMapper 来执行此操作并且运行良好。但是我确实在一篇博客文章中看到(我认为是 Rob C)在 ViewModel 上有一个构造函数,它接受所需参数的数量,然后生成 ViewModel

例如 var RetViewModel = new ViewModel(MyObject);

这似乎是一种不错的方式,想法?

最佳答案

“公认的方式”通常是最适合您的方式。

我从未听说过 AutoMapper,当我研究它时,我得到的是它通过遵循特定约定创建神奇的对象映射。

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

注意:我只看了大约一半的截屏视频,所以我对 AutoMapper 的看法有些不完整。

我个人不想使用它,因为它需要我编写额外的代码来映​​射/“展平”对象属性(代码,IMO,最好留在构造函数逻辑中)。在截屏视频示例中,该代码通常放在 Controller 的操作方法中,这会导致膨胀。(我喜欢瘦 Controller /操作)

我使用您在帖子中提供的方法,让模型的构造函数获取一个对象并完成所有工作。

此外,我总是创建一个不带参数的空构造函数,以便我可以手动设置 ViewModel 对象的属性值。

例子:

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

总而言之,尝试两种方式,看看哪种方式适合您。 AutoMapper 是一个好主意,我可以看到它在很多情况下都有帮助,但是,我认为在某些时候,当您使用它时,您将使用它编写与使用对象构造函数一样多的代码。

关于c# - 查看模型 Asp.Net MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1824949/

相关文章:

asp.net-mvc - 属性级验证错误阻碍了类级验证的验证

c# - TDD 与 MS 测试

c# - Session.Clear 后的 Nhibernate LazyInitializationException

c# - WPF AxisAngleRotation3D 与 XNA CreateFromAxisAngle

asp.net-mvc - 如何使用 Angular 路由来嵌套 3 个 mvc Razor 模型

asp.net-mvc-2 - 使用 Html.LabelFor 来显示人类可读的标签?

C# - 如何格式化日期时间以删除尾随零

c# - mvc 4 IEnumerable 检查它是否为空

asp.net-mvc - 任何人都知道我们如何使用 nuget 中的这个 EmbeddedResourceVirtualPathProvider 包?

c# - 我如何知道我的 MVC Controller 操作在哪个区域被调用?