我有以下型号:
public class BaseEntity
{
public DateTime CreatedDate { get; set; }
public DateTime ModifiedDate { get; set; }
}
public class Child1 : BaseEntity { }
public class Child2 : BaseEntity { }
日期以UTC格式写入我的数据库,但当我将它们拉入视图模型时,我希望日期以当地时间显示。所以这就是我的尝试:
Mapper.CreateMap<BaseEntity, BaseViewModel>()
.ForMember(e => e.CreatedDate, b => b.MapFrom(x => DateHelper.ConvertToLocalTimeZone(x.CreatedDate)))
.ForMember(e => e.ModifiedDate, b => b.MapFrom(x => DateHelper.ConvertToLocalTimeZone(x.ModifiedDate)));
这不起作用。它只适用于我为子类显式创建地图,就像这样,我认为这是不合理的:
Mapper.CreateMap<Child1, Child1ViewModel>()
.ForMember(e => e.CreatedDate, b => b.MapFrom(x => DateHelper.ConvertToLocalTimeZone(x.CreatedDate)))
.ForMember(e => e.ModifiedDate, b => b.MapFrom(x => DateHelper.ConvertToLocalTimeZone(x.ModifiedDate)));
我做了一些搜索,但没有找到似乎在基类处理自定义映射的解决方案。
提前致谢。
答案 0 :(得分:1)
这样的显示逻辑应该在您的视图中完成,而不是在视图模型中完成。将您的视图模型保持为DateTime,然后根据您的视图技术,您可以创建模板化帮助器或HtmlHelper扩展,以标准化日期的显示方式。