MVC3 Редактировать объект, содержащий коллекцию - PullRequest
1 голос
/ 17 апреля 2011

Я пытаюсь заставить редактировать форму и действие контроллера для следующей модели:

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;}
}

Я создал представление Edit для модели Form, использовал EditorTemplate для 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

Действие Создать работало как шарм, выполненный почти таким же образом - я могу создавать новые объекты с коллекцией других объектов в качестве его свойства. Так что я не уверен, почему Edit не работает так же ... какие-нибудь идеи?

UPDATE

После нескольких попыток достичь цели - обновив свой IEnumerable из FormElement, я обнаружил эту статью http://www.codetuning.net/blog/post/Binding-Model-Graphs-with-ASPNETMVC.aspx, которая описывает, что происходит и как ее решить.

1 Ответ

1 голос
/ 17 апреля 2011

Попробуйте

TryUpdateModel(form, collection);

EDIT:

Также см. этот пост.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...