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

似乎当使用任意索引并将它们存储在隐藏输入中时,您仍然需要在输入名称“索引”前面加上实际参数名称,因为它出现在操作方法中。所以在我的例子中,隐藏的输入名称属性应该设置为TestSections.Index,只有“索引”会使模型绑定器混淆,结果可能有缺陷。

于 2012-12-24T02:19:01.533 回答