输入文本没有值ASP .NET MVC 4

时间:2014-02-26 01:13:50

标签: asp.net-mvc-4 c#-4.0 html.textboxfor

我正在使用数据表插件,事实是我有数千行,所以我实现了服务器处理方法。问题是其中一个列有一个文本框,但鉴于我在控制器中生成信息,我在那里创建该字段。

这是我在控制器中定义元素的方式:

<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>

任何想法为什么会发生?

提前致谢!

1 个答案:

答案 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的索引开头的元素。这就是它无法正常工作的原因。