2

私は次の単純なモデルを持っています:

public class MainModel
{
    public int Id {get;set;}
    public List<Question> Questions {get;set;}
}

public class Question
{
    public string Text {get;set;}
    public List<Answer> Answers {get;set;}
}

public class Answer
{
    public byte No {get;set;}
    public string Text {get;set;}
    public bool Correct {get;set;}
}

ユーザーが各質問に対してカスタム数の質問と回答を追加できるようにする (およびそれらを削除する) ことができるように、MainModel に強く型付けされたビューを用意しました。

非表示のインデックス フィールドを追加する方法を使用していますが、質問レベルで問題なく動作します (動的に追加された質問が POST に含まれています)。ただし、動的に追加された回答に関しては、正しく機能していません。これは、結果としてレンダリングした HTML です。

<div class="answer">
<input type="hidden" value="1" name="Questions[2].Answers.Index">
<input type="checkbox" data-checkbox-for="Questions[2].Answers[1].Correct" checked="checked">
<input type="hidden" value="1" name="Questions[2].Answers[1].No">
<input type="text" value="2.1" name="Questions[2].Answers[1].Text">
<input type="hidden" value="true" name="Questions[2].Answers[1].Correct">
<span class="remove-answer link">Remove</span>
</div>

ここで何が間違っていますか?

4

2 に答える 2

1

ゼロインデックスから始めますか?

 <div class="answer">
<input type="hidden" value="1" name="Questions[2].Answers.Index">
<input type="checkbox" data-checkbox-for="Questions[2].Answers[0].Correct" checked="checked">
<input type="hidden" value="1" name="Questions[2].Answers[0].No">
<input type="text" value="2.1" name="Questions[2].Answers[0].Text">
<input type="hidden" value="true" name="Questions[2].Answers[0].Correct">
<span class="remove-answer link">Remove</span> 

0 からカウントを開始しない場合、mvc はインデックス 1 の前にインデックス 0 を必要とするため、投稿値は取得されません。

次のプロパティはモデルにありませんか?

<input type="hidden" value="1" name="Questions[2].Answers.Index">
于 2012-10-11T20:17:16.653 に答える