使用非顺序索引并在方法中具有多个自定义类型参数时,会导致绑定

时间:2012-12-23 13:02:17

标签: c# asp.net asp.net-mvc-3 asp.net-4.5

说我发回这张表格:

 <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

1 个答案:

答案 0 :(得分:0)

看起来当使用任意索引并将它们存储在隐藏输入中时,您仍然需要在输入名称“Index”前面添加操作方法中显示的实际参数名称。 因此,在我的情况下,隐藏的输入名称属性应设置为TestSections.Index,只有“索引”混淆模型绑定器,结果可能有缺陷。