0

这个问题已经在 StackOverflow 上被问过很多次了,但是我没有看到任何可以满足我需求的东西。我想通过使用服务器端数据注释来驱动客户端,即 jQuery,验证是有条件的。

也就是说,我正在尝试构建一个通用下拉模型,如果用户从 DropDownList 中选择“其他”,Other则调用的耦合文本字段是强制性的。如何使用下拉模型属性上的属性来执行此操作?

4

2 回答 2

0

是的,这是可能的。看看MVC Foolproof 框架,它有许多不错的附加功能,例如[RequiredIf]验证属性。他们还与客户端验证一起工作。

如果您对如何实现这一点的细节感兴趣,可以查看这些属性的源代码。这是相当多的工作。您需要让您的属性覆盖IClientValidatable接口,然后在客户端编写自定义的不显眼的适配器。

我写了一个这样的实现的例子here。它不处理条件验证,但技术完全相同。您只需要根据您的需要调整客户端适配器。

于 2013-01-03T09:21:09.927 回答
0

周围有许多 RequiredIf 实现,例如下面的一个:

http://blogs.msdn.com/b/stuartleeks/archive/2011/10/06/flexible-conditional-validation-with-asp-net-mvc-3.aspx

另一种选择是 FluentValidation,它不是基于属性的验证,但非常灵活。

于 2013-01-03T09:22:33.883 回答