0

我在使用默认活页夹绑定到嵌套列表时遇到了一些麻烦。我正在使用 linq to sql 并具有以下数据结构

比赛 < 比赛题 < 比赛题选择

我的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 列表中的 Competition 前缀并单独绑定到每个集合,我会更加成功,例如

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

但我不能让它为 CompetitionQuestionChoices 工作,因为它必须有两个前缀,我不知道如何声明

任何帮助都将不胜感激。

4

1 回答 1

0

事实证明,我的问题源于 .Net 3.5 中的 assign 方法问题。在定位 .Net 4 后,绑定工作正常。这是一篇有进一步解释的帖子。

于 2009-11-01T13:34:11.270 回答