我有一个嵌套视图模型,我正在使用它来更新(编辑)表单。我可以使用UpdateModel更新父代和子代,但不能更新孙子代。我尝试使用"Answers“和"Questions.Answers”作为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; }
}
}发布于 2016-07-15 23:28:57
这在很大程度上是一种变通方法,而不是最佳实践,但是在调用UpdateModel之前,您是否尝试过在for循环中将每个项目的实体状态设置为EntityState.Modified?
https://stackoverflow.com/questions/38399638
复制相似问题