MVC: обновление основных дочерних элементов с помощью UpdateModel

У меня есть модель вложенного представления, и я использую ее для обновления (редактирования) формы. Я могу обновить Parent и Children с помощью UpdateModel, но не могу обновить Grand Children. Я пробовал «Ответы» и «Вопросы.Ответы» для имени префикса UpdateModel, но он не обновляется. Любая помощь приветствуется!

   [HttpPost]
    public ActionResult Edit(SurveyViewModel request)
    {
        try
        {
            var dbrecord = Survey.Get(request.SurveyID, Survey.FetchType.SurveyID);
            UpdateModel(dbrecord); // Working
            UpdateModel(dbrecord.SurveyQuestions, "Questions"); // Working

            // Not Working
            for (var i = 0; i < dbrecord.SurveyQuestions.Count; i++)
            {
                UpdateModel(dbrecord.SurveyQuestions[i].SurveyAnswers, "Questions[" + i + "].Answers");
            }

            dbrecord.Save();

            return View();
        }
        catch (Exception ex)
        {
        }
    }

Посмотреть модель

public class SurveyViewModel
{
    public int SurveyID { get; set; }

    public string Name { get; set; }

    public List<QuestionsRequest> Questions { get; set; }

    public class QuestionsRequest
    {
        public string Question { get; set; }

        public List<AnswersRequest> Answers { get; set; }

        public class AnswersRequest
        {
            public string Answer { get; set; }
        }
}

person Ram    schedule 15.07.2016    source источник


Ответы (1)


Это скорее обходной путь, а не лучшая практика, но пробовали ли вы установить для состояния объекта значение EntityState.Modified для каждого элемента в цикле for перед вызовом UpdateModel?

person David Spenard    schedule 15.07.2016