下面是模型和ViewModel
[Table(name: "hCodeRequests")]
public class CodeRequest
{
public int Id { get; set; }
[Required]
[StringLength(50)]
[MaxLength(50)]
public string Nome { get; set; }
public ICollection<ArtigoCodeRequest> ArtigoCodeRequests { get; set; }
}
查看模型
public class CodeRequestViewModel
{
public int Id { get; set; }
public string Nome { get; set; }
public bool Selected { get; set; }
}
在我的剃刀页面OnGet处理程序上,这就是我所做的,并且它是有效的
[BindProperty]
public IList<CodeRequestViewModel> CodeRequestsViewModelList { get; set; }
public async Task<IActionResult> OnGetAsync()
{
var codeRequestModelList = _context.CodeRequests.ToList();
CodeRequestsViewModelList = _mapper.Map<List<CodeRequest>, List<CodeRequestViewModel>>(codeRequestModelList);
}
现在,OnPost处理程序我想将VM中的值返回到我的模型中,但这不起作用
var CodeRequests = _mapper.Map<List<CodeRequestViewModel>, List<CodeRequest>>(CodeRequestsViewModelList
.Where(c => c.Selected == true).ToList());
我尝试了忽略选定属性的配置文件,但仍然给出了未映射属性的相同异常
CreateMap<CodeRequest, CodeRequestViewModel>().ForMember(dest => dest.Selected, source => source.Ignore());
发布于 2019-06-02 19:15:13
我认为您需要在CreateMap
方法的末尾使用ReverseMap()
,以便使此映射双向工作。
CreateMap<CodeRequest, CodeRequestViewModel>().ForMember(dest => dest.Selected, source => source.Ignore()).ReverseMap();
https://stackoverflow.com/questions/56417918
复制