摘要:
本篇参考了 Shailendra Chauhan和 Jag Reehal的博文。 RenderParital和RenderAction的共同点: ※ 都能返回部分视图 ※ 返回的部分视图和主视图共用一个TextWriter对象把内容写到Http Response中 什么时候使用Html.RenderPartial 当部分视图中的数据是主视图的一部分,即部分视图的Model是主视图Model的一个集合类型属性的时候,倾向于用Html.RenderPartial。 就像如下为了展示主视图view model的一个集合类型属性IEnume... 阅读全文
摘要:
本文参考了Taswar Bhatti的博客,他写了《Instant AutoMapper》这本书。遗憾的是,这本电子版书在国内还买不到,也下载不到。也只能从他的有限几篇博文中来窥探一二了。 本文模拟了一个关于订单的应用场景,涉及到的方面包括: ※ 显示所有订单 ※ 显示客户信息 ※ 显示订单,但不显示view model OrderDto中的集合导航属性 ※ 把源中的DateTime类型转换成int类型 ※ 把源中的bool类型转换成string类型 ※ 把源中的集合导航属性IEnumerable LineItems转换成目标中的计算数量的strin... 阅读全文
摘要:
本篇AutoMapper使用场景:※ 当源和目标具有同名的复杂类型属性、集合类型属性,这2种属性对应的类间也需建立映射※ 一次性定义好源和目标的所有映射※ 一次性定义好源和目标的所有映射,目标中有复杂类型属性※ 一次性定义好源和目标的所有映射,目标中有复杂类型属性,为复杂类型创建自定义解析器 □ Domain model public class BookStore { public string Name { get; set; } public Address Address { get; set; } publ... 阅读全文
摘要:
本篇AutoMapper使用场景: ※ 动态实现接口方法或属性 ※ 目标中的属性如果比源多,可以忽略多出的属性 ※ 目标有virtual属性,可忽略 ※ 目标属性值为null的解决办法 ※ int转string ※ bool转string ※ DateTime转String ※判断条件 动态实现接口方法或属性 public interface ICreateOrderMessage { string CustomerName { get; set; } } □ 使用... 阅读全文
摘要:
本篇AutoMapper使用场景: ※ 类型转换,源string类型分别转换成int, DateTime,Type ※ 源和目标都包含复杂类型属性 ※ 把源中的一个属性映射到目标中的多个属性 类型转换,源string类型分别转换成int, DateTime,Type □ Domain model public class Source2 { public string Value1 { get; set; } public string Value2 { get; set; } ... 阅读全文
摘要:
本篇AutoMapper使用场景:※ 源字典集合转换成目标字典集合※ 枚举映射※ 自定义解析器 ※ 源中的复杂属性和Get...方法转换成目标属性源字典集合转换成目标字典集合 □ Domain model public class SourceValue { public int Value { get; set; } } □ View model public class DestValue { public int Value { get; set; } } ... 阅读全文
摘要:
本篇AutoMapper使用场景: ※ Decimal转换成String类型 ※ 源数组转换成目标数组 ※ 源中的集合(数组)属性转换成目标中的集合(数组)属性 ※ 子类父类间的映射 Decimal转换成String类型 □ Domain model public class Order { public decimal Amount { get; set; } } □ View model public class OrderListViewModel ... 阅读全文
摘要:
MVC中,如果想在Domain Model和View Model之间建立映射,用AutoMapper是一个不错的选择。不仅如此,AutoMapper能在不同对象之间建立映射,比如string与int类型, DateTime与int类型,接口与实现类,等等。本篇主要总结AutoMapper在MVC中的配置、使用、单元测试,以及各种映射场景。 注意: 如果通过NuGet下载最新版的AutoMapper,需要注意的是:有些方法,比如ForMember方法,和以前不一样。还有一些方法已经过期。 配置 □ 全局配置 1 public class MvcAppli... 阅读全文