2011-08-03 3 views
2

첫 번째 MVC 앱을 만들 때 페이지 중 하나에서 데이터베이스의 테이블에 대한 일련의 질문을 나열해야합니다. 내가 설정 한 모델 :MVC 3 Webapp - 모델 바인더

public class Audit 
{ 
    public DateTime InspectionDate { get; set; } 
    public string Engineer { get; set; } 
    public List<AuditGroup> AuditGroups { get; set; } 
} 

public class AuditGroup 
{ 
    public string GroupName { get; set; } 
    public List<AuditQuestion> AuditQuestions { get; set; } 
} 

public class AuditQuestion 
{ 
    public string Group { get; set; } 
    public string Question { get; set; } 
    public string Answer { get; set; } 
    public string Comments { get; set; } 
} 

모델이 목록을 포함, 나는 만들기라고하고 페이지 벌금에 표시되는 그룹과 질문 그룹과 이들과 모델을 채워 페이지를 만들었습니다. 내가 질문에 대답 할 때 (텍스트 상자에 입력)하고 제출 버튼을 누르면이 컨트롤러를 호출

[HttpPost] 
    public ActionResult Create(Audit newAudit) 
    { 
     try 
     { 
      // TODO: Add insert logic here 

      return RedirectToAction("Index"); 
     } 
     catch 
     { 
      return View(); 
     } 
    } 

newAudit는 엔지니어 및 검사 날짜 데이터를 가지고 있지만 바인더는 페이지의 목록을 따기되지 않는다 .

@{ 
    ViewBag.Title = "Audit"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 
@model test.Models.Audit 
<h2> 
    Audit</h2> 
@using (Html.BeginForm()) 
{ 
<fieldset> 

    @foreach (var AuditGroups in Model.AuditGroups) 
    { 
    @Html.EditorFor(x=> AuditGroups.GroupName) 

     } 
</fieldset> 
<p> 
    <input type="submit" value="Create" /> 
</p> 

} 그래서 여기

나는 목록을가는 페이지에 그들을 가하고 있지만에 제출 한 목록이 null입니다 : 이것은 내가 그것을 해결하려고 노력했다 줄이려고 버전입니다. 아무도 내가 잘못 가고 있는지 알 수 있습니까?

요약하면 내가하고있는 일은 질문 목록을 페이지, 사용자가 작성하고 답변을 제출하지만 모든 목록에 대한 답변을받지 못하는 것입니다.

답변

0

제 대답은 this question입니다. 이 문제를 다루는 블로그 게시물이 있습니다. 또한 Yarx가 문제를 해결하는 데 도움이되는 게시물에 대한 링크를 제공 한 답변에 대한 의견을 읽으십시오.

+0

안녕하십니까. 빠른 응답을 보내 주셔서 감사합니다. http://ivanz.com/2011/06/16/editing-variable-length-reorderable-collections-in-asp-net-mvc- part-1/당신이 추천하고 내가 필요로하는 것처럼 보입니다. 계속 게시하게 ... – MartGriff

관련 문제