2009-10-30 87 views
0

我遇到了一些麻煩綁定到使用默認綁定器的嵌套列表。我使用LINQ to SQL和具有以下數據結構MVC默認模型綁定到複雜列表

競爭< 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) 
{ 

} 

這讓我成爲一個競爭對手,但沒有孩子的元素

我一直在List中沒有競爭前綴的情況下取得了更多的成功,並在每個集合中單獨綁定了HTML。

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

,但我不能讓這對competitionQuestionChoices工作,因爲它必須有兩個前綴,我不知道如何申報

任何幫助感激地接受。

回答

0

事實證明,我的問題源於.Net 3.5中assign方法的問題。在針對.Net 4之後,綁定正常工作。這是一個post進一步的解釋。