如果我没有弄错,远程属性验证执行值更改,因此它不要求您按提交,但是自定义属性要求我们写JQuery来调用适配器
所以我的问题是为什么不一直使用远程属性?
答案 0 :(得分:2)
RemoteAttribute
的主要目的是在控制器中执行验证逻辑,同时保持在同一页面上。通常在需要访问外部资源时使用它(例如,在注册时检查新用户是否使用现有用户名),但也可能是因为逻辑太复杂而无法复制/在客户端脚本中维护它。
有关RemoteAttribute
的两个重要事项。
.blur()
事件中编辑控件后进行ajax调用,
但此后每次.keyup()
事件都要使用
RemoteAttribute
将会成为一个表现如果您编写自定义验证属性,其中验证逻辑可以使用javascript执行,那么您的属性应该继承自ValidationAttribute
并实现IClientValidatable
(并包含必要的脚本以添加客户端规则这样你就可以得到客户端和服务器端的验证,而不需要对服务器进行不必要的调用。
请参阅The Complete Guide to Validation in ASP.NET MVC 3 - Part 2以获取有关实施自定义验证属性的好文章。