1

このフォームを返信するとします。

 <form action="/Admin/SaveTestChanges" method="post">

        <input name="index" type="hidden" value="S1"/>

        <input name="[S1].SID" type="hidden" value="1"/>

        <input id="sectionName" name="[S1].SectionName" type="text"  value="Nouns"/>

        <input type="submit" value="Submit" />
    </form>

このメソッドに:

     public void SaveTestChanges(TestModel Test, List<SectionModel> TestSections,
                List<QuestionModel> TestQuestions, List<ChoiceModel> QuestionChoices)
            {
                // Some implementation

            }

このオブジェクトSectionModelには、パラメーター リスト内の他のカスタム型にはない一意のプロパティ名がありますが、バインドすると、それTestSections.Countが 1 であることが示されるだけでなく、キーと値のペアが存在しない他のすべてのコレクション型についても同じことが示されます。合格した。これはなぜですか?

非シーケンシャル インデックスを使用する場合、プロパティ名だけでなくパラメータ名も含めることができますか? すなわちTestSections[S1].SectionNameまたは[S1].TestSections.SectionName

4

1 に答える 1

0

任意のインデックスを使用して非表示の入力に格納する場合、アクション メソッドに表示される実際のパラメーター名を入力名 "Index" の前に付ける必要があるようです。したがって、私の場合、非表示の入力名プロパティを に設定する必要がありますTestSections.Index。「インデックス」だけではモデルバインダーが混乱し、結果に欠陥が生じる可能性があります。

于 2012-12-24T02:19:01.533 に答える