MVC:使用 UpdateModel 更新孙子

本文关键字:更新 UpdateModel 使用 MVC | 更新日期: 2023-09-27 17:57:20

我有一个嵌套视图模型,我正在使用它来更新(编辑)表单。我可以使用更新模型更新父项和子项,但无法更新孙项。我尝试了"答案"和"问题.答案"作为更新模型前缀名称,但它没有更新。任何帮助不胜感激!

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

MVC:使用 UpdateModel 更新孙子

这更像是一种解决方法,而不是最佳实践,但是您是否尝试过在调用 UpdateModel 之前将实体状态设置为 EntityState.Modified for 循环中的每个项目?