我正在使用数据表插件,事实是我有数千行,所以我实现了服务器处理方法。问题是其中一个列有一个文本框,但鉴于我在控制器中生成信息,我在那里创建该字段。
这是我在控制器中定义元素的方式:
<input class='form-control' data-val='true' data-val-number='El campo Número de Protocolo debe ser un número.' data-val-range='El campo Número de Protocolo debe ser un número entero.' data-val-range-max='2147483647' data-val-range-min='1' id='donaciones_" + i +"__numeroProtocolo' name='donaciones[" + i + "].numeroProtocolo' type='text' />
在我的viewModel中,其中一个字段是名为donaciones的List<Donacion>
,Donacion对象的一个属性是“numeroProtocolo”。文本框似乎呈现正常,但是当我键入它时,“value”属性不会更改。无论我写什么,价值属性都不会改变。
渲染时,它在视图中的样子:
<input id="donaciones_0__numeroProtocolo" class="form-control" type="text" name="donaciones[0].numeroProtocolo" data-val-range-min="1" data-val-range-max="2147483647" data-val-range="El campo Número de Protocolo debe ser un número entero." data-val-number="El campo Número de Protocolo debe ser un número." data-val="true"></input>
任何想法为什么会发生?
提前致谢!
答案 0 :(得分:0)
我意识到出了什么问题。我的答案在这里供将来参考。我根据页面为每个文本输入生成不同的名称。例如,如果我显示10行,则页面2的名称将为{2}的donations[0],donations[1],...,donations[9]
将是donations[10],donations[11],...,donations[19]
。问题是,在每次ajax调用后,服务器端处理会重新绘制表格,并且您丢失名称来自0,1... to 9
的先前元素,因此您现在只能拥有来自10,11... to 19
且mvc不能的那些元素返回一个列表,其中包含以不等于0的索引开头的元素。这就是它无法正常工作的原因。