2016-07-15 2 views
0

중첩 된 뷰 모델이 있고이를 사용하여 양식을 업데이트 (편집)하고 있습니다. UpdateModel을 사용하여 부모와 자식을 업데이트 할 수 있지만 그랜드 아이들을 업데이트 할 수는 없습니다. UpdateModel 접두어 이름에 대해 "Answers"및 "Questions.Answers"를 시도했지만 업데이트되지 않았습니다. 어떤 도움을 주셔서 감사합니다!MVC : 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; } 
     } 
} 

답변

0

이것은 해결의 더하지 않는 것이 좋습니다,하지만 당신은 UpdateModel를 호출하기 전에 루프의 각 항목에 대한 EntityState.Modified에 엔티티의 상태를 설정 시도 ?