Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将属性从模型复制回对象——显式复制还是迭代属性集合?_C#_Asp.net Mvc - Fatal编程技术网

C# 将属性从模型复制回对象——显式复制还是迭代属性集合?

C# 将属性从模型复制回对象——显式复制还是迭代属性集合?,c#,asp.net-mvc,C#,Asp.net Mvc,我获取一个对象并将其属性写入模型,然后在视图中显示该模型以进行编辑。之后,用户点击submit,模型被发布回我的控制器。现在我想获取模型的属性并将它们写回对象 我正在考虑使用反射来实现这一点,但我有点担心。我想我会看看是否有更明显的答案 代码: 关于如何做到这一点的想法 看一看。它使这种左右手编码的工作变得简单 下面是一个例子: Mapper.CreateMap<Order, OrderDetailsModel>(); OrderDetailsModel dto = Mapper.M

我获取一个对象并将其属性写入模型,然后在视图中显示该模型以进行编辑。之后,用户点击submit,模型被发布回我的控制器。现在我想获取模型的属性并将它们写回对象

我正在考虑使用反射来实现这一点,但我有点担心。我想我会看看是否有更明显的答案

代码:

关于如何做到这一点的想法

看一看。它使这种左右手编码的工作变得简单

下面是一个例子:

Mapper.CreateMap<Order, OrderDetailsModel>();
OrderDetailsModel dto = Mapper.Map<Order, OrderDetailsModel >(order);
myObject.InjectFrom(anyOtherObject);
看一看。它使这种左右手编码的工作变得简单

下面是一个例子:

Mapper.CreateMap<Order, OrderDetailsModel>();
OrderDetailsModel dto = Mapper.Map<Order, OrderDetailsModel >(order);
myObject.InjectFrom(anyOtherObject);
使用。它映射具有相同名称的属性,而无需任何自定义编码。您可以使用NuGet将其添加到Visual Studio中的项目中。

使用。它映射具有相同名称的属性,而无需任何自定义编码。您可以使用NuGet将其添加到Visual Studio中的项目中。

您可以使用AutoMapper模式来完成此映射

注:您在github上有项目和库

链接:

您可以使用AutoMapper模式来完成此映射

注:您在github上有项目和库


链接:

您还应该看看

在使用了Automapper和ValueInjector之后,我想说ValueInAttribute肯定更易于使用。在您想要从一个对象映射到另一个对象之前,它也不需要预先进行任何设置。只要属性名称匹配,就可以使用默认功能。它还支持展平和取消展平

以下是一个例子:

Mapper.CreateMap<Order, OrderDetailsModel>();
OrderDetailsModel dto = Mapper.Map<Order, OrderDetailsModel >(order);
myObject.InjectFrom(anyOtherObject);
请不要忘记在引用程序集后包含using语句:

using Omu.ValueInjecter;

谢谢。

您还应该看看

在使用了Automapper和ValueInjector之后,我想说ValueInAttribute肯定更易于使用。在您想要从一个对象映射到另一个对象之前,它也不需要预先进行任何设置。只要属性名称匹配,就可以使用默认功能。它还支持展平和取消展平

以下是一个例子:

Mapper.CreateMap<Order, OrderDetailsModel>();
OrderDetailsModel dto = Mapper.Map<Order, OrderDetailsModel >(order);
myObject.InjectFrom(anyOtherObject);
请不要忘记在引用程序集后包含using语句:

using Omu.ValueInjecter;

谢谢。

为什么不缓存原始订单,然后用存储在OrderDetails模型中的数据设置属性?更好的是,为什么不在OrderDetailsModel中创建getter和setter,使用缓存顺序中的getter和setter?为什么不缓存原始顺序,然后使用存储在OrderDetailsModel中的数据设置属性?更好的是,为什么不在OrderDetails模型中创建getter和setter,使用缓存顺序中的getter和setter呢?