客户端验证和集合或动态表单

时间:2010-01-12 23:28:36

标签: c# asp.net-mvc client-side-validation

我正在使用ASP.NET MVC 2.0。

我需要实现一个动态表单,以便添加“动态”新表格行。

我的ViewModel根据将添加到表单的每一行包含一个ICollection。

现在我如何使用该机制进行客户端验证?

1 个答案:

答案 0 :(得分:0)

您应该将模型绑定到列表中。

请查看:http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx(Phil Haack是Microsoft MVC之一)。这基本上是微软家伙为了实现这一功能所做的黑客攻击(Phill声称他们正在设计其他一些方法来实现这一目标,但现在这就是我们这样做的方式)。您可以轻松地为此添加验证控件。实现命名方案时请仔细查看,不要忘记隐藏“索引”字段。索引的值可以是你喜欢的任何东西(它不必是序列中的数字),但是你在隐藏字段中放置的值必须在随后的输入控件的方括号内,就像在Phill中一样例。仔细检查一下,我曾经到了纯粹的痛苦点,因为我忘记了隐藏的索引,因为很容易错过一些东西。此外,命名方案的第二部分(“名称”和“价格”)必须与模型中的相同。

完成后,使用jQuery动态添加/删除表单上的项目。请注意,jQuery选择器阻止你使用id的方括号,因此你可以用其他方式构造输入控件的'id'属性(即'something_index_propertyName'),同时根据命名方案保留'value'属性。

快乐的编码。

相关问题