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