包含集合的MVC3 Edit对象

时间:2011-04-17 19:15:25

标签: c# entity-framework asp.net-mvc-3 razor

我正在尝试为以下模型工作制作编辑表单和控制器操作:

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描述了正在发生的事情以及如何解决它。

1 个答案:

答案 0 :(得分:1)

尝试

TryUpdateModel(form, collection);

编辑:

另见this post.