Trim Automapper 中的字符串

Trim String In Automapper

Mapper.CreateMap<DataViewModel, DataSource>()

My Source Here 包含来自用户界面的字符串值。我想 trim 所有字符串,然后再将其映射到目标对象。找不到解决方案。任何人都知道如何做到这一点

这可以使用 ForMember 方法完成,如下所示:

Mapper.CreateMap<DataViewModel, DataSource>()
.ForMember(x => x.YourString, opt => opt.MapFrom(y => y.YourString.Trim()));

如果你想 trim 多个 属性 你可以像这样链接 .ForMember() 方法:

Mapper.CreateMap<DataViewModel, DataSource>()
.ForMember(x => x.YourString, opt => opt.MapFrom(y => y.YourString.Trim()))
.ForMember(x => x.YourString1, opt => opt.MapFrom(y => y.YourString1.Trim()))
.ForMember(x => x.YourString2, opt => opt.MapFrom(y => y.YourString2.Trim()));

虽然这可以完成工作,但我建议在应用程序的其他地方执行输入清理,因为它不属于映射。

您也可以使用AddTransform

CreateMap<DataViewModel, DataSource>()
    .AddTransform<string>(s => string.IsNullOrWhiteSpace(s) ? "" : s.Trim());