首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC3有选择地验证客户端

MVC3有选择地验证客户端
EN

Stack Overflow用户
提问于 2011-03-24 21:33:05
回答 2查看 2K关注 0票数 2

应用程序中的每个表单都有一组无线电按钮。一旦选中,只需要验证与该无线电按钮相关的某些字段。

我正在使用MVC 3,需要验证来工作客户端。

简单地使用form.

  • IValidatableObject --I只能验证clientside.

  • IClientValidatable上的所有字段--
  1. 不起作用--看起来它可能会完成这项工作,但看来我必须为每个标准的DataAnnotation attribute.
  2. RemoteValidation一次只使用一个字段编写一个新属性。
  3. 的另一个选择是删除MVC3验证,然后使用jQuery完成所有操作。我对此没有问题,但我希望使用MVC3并减少编码/维护,以为更大的MVC3做准备--我仍然使用MVC3验证,但当选择无线电按钮

时,使用jQuery从验证中添加/删除验证字段。

如果有人能就处理这一问题的最佳方法提出一些建议,我们将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-24 21:39:42

MVC 3默认使用jQuery的验证插件,而且插件不会验证禁用的字段。如果选择了某些单选按钮,是否不再需要不想验证的字段?如果是这样,那么您只需禁用这些元素,它们就不会被验证(并且请注意,那些禁用的字段也不会被提交到服务器上)。

例如:

$(‘input’).attr(‘禁用’,‘禁用’);

票数 4
EN

Stack Overflow用户

发布于 2011-03-25 03:24:58

对于复杂的验证,最好将代码交给这些。数据注释对您90%的验证需求非常有效,但对于什么/如果方案则失败。

对于客户端,使用通过jQuery验证插件提供的事件驱动的自定义验证。对于服务器,使用CustomValidation属性:

http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.customvalidationattribute(v=vs.95).aspx

如果您有可重用的自定义验证,那么使用IClientValidatable是很棒的,但是它浪费了一次性验证的时间。

或者,将RemotValidation与使多个字段无效的CustomValidation属性一起使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5425829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档