asp.net-mvc – 使用ValueInjecter在具有不同属性名称的对象之间
发布时间:2020-12-15 22:18:22 所属栏目:asp.Net 来源:网络整理
导读:如何将属性从对象映射到具有不同属性名称的另一个对象? 我有一个Product类,如下所示: public class Product : IEntity{ public int Id { get; set; } public string Name { get; set; }} 视图模型看起来像: public class ProductSpecificationAddViewMode
如何将属性从对象映射到具有不同属性名称的另一个对象?
我有一个Product类,如下所示: public class Product : IEntity { public int Id { get; set; } public string Name { get; set; } } 视图模型看起来像: public class ProductSpecificationAddViewModel { public int ProductId { get; set; } public string ProductName { get; set; } } 我需要做以下映射: Product.Id => ProductSpecificationAddViewModel.ProductId Product.Name =>ProductSpecificationAddViewModel.ProductName 这是我的行动方法: public ActionResult Add(int id) { Product product = productService.GetById(id); // Mapping //ProductSpecificationAddViewModel viewModel = new ProductSpecificationAddViewModel(); //viewModel.InjectFrom(product); return View(viewModel); } 我该怎么办? 解决方法
如果您正在使用ValueInjecter,那么您将编写一个ConventionInjection.见第二个样本
here
public class PropToTypeProp : ConventionInjection { protected override bool Match(ConventionInfo c) { return c.TargetProp.Name == c.Source.Type.Name + c.TargetProp.Name; } } 这个注入将从TSource.*的所有属性到TTarget.TSource *,所以你这样做: vm.InjectFrom<PropToTypeProp>(product); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.Net错误:“类型”foo“存在于”temp1.dll“和”temp2.
- asp.net-mvc – 测试控制器使用User.Identity.Name的操作
- entity-framework – ASP .Net MVC与Java的[Transient]属性
- asp.net-mvc – ASP.NET MVC – 为基本控制器中的母版页设置
- asp.net – 使用SignalR在多个Web应用程序之间进行通信
- 确定ASP.Net是否正确注册
- asp.net – 将任何UI连接到我的应用程序
- asp.net – 命名Dom元素的Id属性的最佳实践
- asp.net – 如何防止重播攻击?
- asp.net-mvc-3 – MVC3 Webgrid的服务器端分页
推荐文章
站长推荐
热点阅读