デフォルトのバインダーを使用してネストされたリストにバインドするのに問題があります。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に含めずに、各コレクションに個別にバインドすることなく、より成功しました。
UpdateModel(competition,"Competition");
UpdateModel(competition.CompetitionQuestions,"competitionQuestions");
しかし、これをcompetitionQuestionChoicesで機能させることはできません。これは、2つのプレフィックスが必要であり、宣言する方法がわからないためです。
どんな助けでもありがたいです。