1

我正在使用 ASP.NET MVC 2.0。

我需要实现一个动态表单才能“即时”添加新的表单表格行。

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

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

4

1 回答 1

0

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

请看:http ://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx(Phil Haack 是 Microsoft MVC 人员之一)。这基本上是微软为实现该功能而进行的黑客攻击(Phill 声称他们正在设计其他方式来实现这一点,但目前我们就是这样做的)。您可以轻松地为此添加验证控件。在实施命名方案时请仔细查看,不要忘记放置隐藏的“索引”字段。index 的值可以是您喜欢的任何值(它不必是序列中的数字),但无论您作为值放在隐藏字段中的任何内容都必须在方括号内,以便后面的输入控件,就像在 Phill 中一样例子。仔细检查一下,我曾经因为忘记放置隐藏的索引而陷入痛苦的境地,因为很容易错过一些东西。此外,命名方案的第二部分('Name' 和 '

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

快乐编码。

于 2010-01-13T16:18:44.060 回答