我的页面后面有一个模型,该模型的属性是我的搜索表单的模型。我的表单运行正常,然后突然所有属性停止绑定,我的Post操作处理程序看到搜索表单模型的负载为null
。
答案 0 :(得分:0)
在为表单使用“标记助手”并添加输入控件时,可以为每个控件添加自己的name="myProperty"
,也可以忽略此属性,并且此属性是自动生成的。
想象一下,您有10个输入,并且添加了一个新输入,但是忘记在最近的输入上添加一个name
属性,然后该助手添加了自己的属性,例如“ SearchForm.MyProperty”。
前10个以name="myProperty"
结尾,但最后一个是name="SearchForm.MyProperty"
。
在这种情况下,模型绑定失败,大概是,因为这些路径是混合的,并且一个匹配的SearchForm.MyProperty
更具体,使得其他路径看起来应该绑定到页面模型的属性
大概是当您提供自己的名称并且它们都缺少SearchForm.
前缀时,那么它的聪明之处就足以找出将它们全部绑定到SearchForm
的地方。
修复可能根本不向输入提供您自己的name
属性。
对Razor绑定的改进(以消除此处的意外)可能会始终失败,除非名称正确地加上前缀,尽管这样会破坏现有代码。