2009-10-30 6 views
0

기본 바인더를 사용하여 중첩 목록에 바인딩하는 데 문제가 있습니다. 나는 SQL과이 데이터 구조 다음MVC 기본 모델 복잡한 목록에 바인딩

경쟁을 < CompetitionQuestions을 < CompetitionQuestionChoices

하는 LINQ를 사용하고

내가

[AcceptVerbs(HttpVerbs.Post)] 
     public ActionResult Save([Bind(Prefix="Competition")]Competition competition) 
{ 

} 

을 시도 내 컨트롤러에서

<%= Html.Hidden("Competition.Id",Model.Competition.Id) %> 
<%=Html.TextBox("Competition.CompetitionName", Model.Competition.CompetitionName)%> 

<%= Html.TextBox("Competion.CompetitionQuestions[0].Id", Model.CompetitionQuestion.Id)%> 
<%= Html.TextBox("Competion.CompetitionQuestions[0].Question", Model.CompetitionQuestion.Question)%> 

<%= Html.TextBox("Competion.CompetitionQuestions[0].CompetitionQuestionChoices[0].Id", Model.CompetitionQuestionChoices.Id)%> 

<%= Html.TextBox("Competion.CompetitionQuestions[0].CompetitionQuestionChoices[0].Choice", Model.CompetitionQuestionChoices.Choice)%> 

를 다음과 같이 내 HTML입니다 어떤 경쟁자도 있지만 자식 요소는 없다.

Lists int에 HTML이라는 접두어가 붙지 않고 각 컬렉션에 개별적으로 바인딩하는 것보다 더 성공적이었습니다.

UpdateModel(competition,"Competition"); 
UpdateModel(competition.CompetitionQuestions,"competitionQuestions"); 

그러나 나는이 접두사를 가지고 있어야 내가 어떤 도움을 기꺼이 수신

를 선언하는 방법을 잘 모르겠어요으로이 competitionQuestionChoices 위해 일할 수 캔트.

답변

0

내 문제는 .Net 3.5에서 assign 메서드를 사용하여 문제가 발생하는 것으로 나타났습니다. 대상 지정 .Net 4 바인딩이 올바르게 작동했습니다. 추가 설명이있는 post입니다.

관련 문제