MVC: обновить детей Grand, используя UpdateModel

У меня есть модель вложенного представления, и я использую ее для обновления (редактирования) формы. Я могу обновить Parent and 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; }
        }
}

1 ответ

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

Другие вопросы по тегам