Ste*_*aly 5 .net c# asp.net-mvc automapper
我正在创建我的AccountEditViewModel(用于编辑用户的视图模型)和我的User(表示数据库中的用户的数据模型)之间的Automapper映射.如果填写了密码字段,我想加密该密码并存储它,但如果它在我想要保留旧密码时为空.我已经尝试过下面的代码但是它错了,model.Ignore()不返回字符串值.解决这个问题的最佳方式是什么?我可以使用该ForMember()方法完成此操作还是需要自定义解析程序?
Mapper.CreateMap<AccountEditViewModel, User>()
.ForMember(model => model.Password, model => model.MapFrom(user => user.Password != null ? EncryptPassword(user.Password) : model.Ignore()));
Run Code Online (Sandbox Code Playgroud)
试试这个:
Mapper.CreateMap<AccountEditViewModel, User>()
.ForMember(model => model.Password, model => model.Ignore())
.AfterMap((src, dst) =>
{
if (src.Password != null)
dst.Password= EncryptPassword(src.Password);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4349 次 |
| 最近记录: |