我正在尝试为以下模型工作制作编辑表单和控制器操作:
public class Form {
public int ID {get;set;}
public List<FormElement> formElements {get;set;}
}
public class FormElement {
public int ID {get;set;}
public int FormID {get;set;}
public string Question {get;set;}
public string Answer {get;set;}
}
我为Form模型创建了Edit视图,使用了EditorTemplate for FormElement。它看起来不错,表单元素得到了正确呈现,但当我尝试提交表单时,我得到:
The model of type 'testApp.Models.Form' could not be updated.
Line 35: {
Line 36: var form = db.Forms.Single(f => f.ID== id);
Line 37: UpdateModel(form, collection); // <- highlighted
Create动作的工作方式就像一个魅力几乎完全一样 - 我能够创建具有其他对象集合的新对象作为它的属性。所以我不确定为什么Edit不会以同样的方式工作...任何想法?
经过多次尝试实现目标 - 让我的IEnumerable of FormElement更新后,我发现这篇文章http://www.codetuning.net/blog/post/Binding-Model-Graphs-with-ASPNETMVC.aspx描述了正在发生的事情以及如何解决它。