当FormCollection.AllKeys
包含具有空键的项目时,Controller.UpdateModel
方法不更新模型。
对于这种情况,在更新之前我删除了空键
var formCollection =
new FormCollection(controllerContext.HttpContext.Request.Form);
formCollection.Remove("");
UpdateModel(MyModel, formCollection.ToValueProvider());
此代码解决了问题,但更方便的是在DefaultModelBinder
类中重写 BindModel 方法。有谁知道为什么会这样?