문제

기본 바인더로 중첩 목록에 바인딩하는 데 어려움이 있습니다. LINQ에서 SQL을 사용하고 다음과 같은 데이터 구조가 있습니다.

경쟁 <CompetitionQuestions <CompetitionQuestionChoices

내 html은 다음과 같습니다

<%= 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)%>

내 컨트롤러에서 나는 시도했다

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

}

그것은 나에게 경쟁을 일으키지 만 아동 요소는 없습니다

나는 HTML 목록에 경쟁 접두사없이 더 성공적이었다.

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

하지만 두 개의 접두사가 있어야하기 때문에 CompetitionQuestionChoices에서 작동하게 할 수 없습니다.

모든 도움이 감사하게 접수됩니다.

도움이 되었습니까?

해결책

.NET 4를 타겟팅 한 후 .NET 3.5의 할당 메소드의 문제에서 내 문제가 발생하는 것으로 나타났습니다. 바인드는 올바르게 작동했습니다. 여기에 있습니다 게시하다 추가 설명과 함께.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top