我正在尝试找到一种处理部分更新的方法;一个ViewModel有5个字段,但是在Request中仅发送一个字段(即,仅发送已修改的字段而不是构成整个视图模型),因为没有为其他字段显式发送空值,所以我认为它们应设置为null。由于AutoMapper不支持绑定列表,因此很难找到一种优雅的解决方案...
public virtual IActionResult Edit(int id, ViewModel1 viewModel)
{
var model = GetModel(id);
mapper.Map(viewModel, model);
// any field that was not posted, but exists in the ViewModel1 is now null in the model
...
}
我能想到的唯一方法是使用Request.Form.Keys和Reflection来构建只包含已发布属性的ExpandoObject,然后将CreateMissingTypeMaps和ValidateInlineMaps设置为允许AutoMapper映射动态类型。感觉这是一种肮脏的解决方法,可以弥补AutoMapper所缺少的功能...是否有标准的处理方法?