MVC3中的IValidatableObject - 客户端验证

时间:2011-01-20 15:04:43

标签: validation asp.net-mvc-3 client-side-validation

使用MVC3,您有两种新的机制来添加自定义验证。这些是(1)子类ValidationAttribute或(2)实现IValidatableObject。

ValidationAttribute允许您通过实现IClientValidatable(并通过jQuery注册新的适配器和方法)相对简单地添加客户端验证。

IValidatableObject更适合于一次性验证要求,其中重用不是一种选择。它还导致更简单的代码。因此,它是我选择的一些场景。不幸的是,我没有看到使用这种方法实现客户端验证的简单方法。

所以问题是我缺少什么,以及在使用IValidatableObject时如何获得JS验证?

3 个答案:

答案 0 :(得分:23)

由于我没有在这里得到(有效)答案,我问了几个来自微软的人,他们证实目前无法做到这一点。

布拉德威尔逊:

  

目前,只有属性级验证器可以发出客户端   验证(因为输入的想法更好   以浏览器的形式进行验证......没有“模型”可言   从浏览器的角度来看)。

Stuart Leeks:

  

我不相信你可以用它来连接客户端验证   IValidatableObject

答案 1 :(得分:4)

http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx http://blogs.msdn.com/b/stuartleeks/archive/2010/07/28/asp-net-mvc-adding-client-side-validation-to-validatepasswordlengthattribute-in-asp-net-mvc-3-预览1.aspx

  

ASP.NET MVC 3现在表彰了   模型时的IValidateObject接口   绑定(除了所有的   已经有其他验证方法了   支持MVC 2),并将   从中检索验证错误   自动标记/突出显示受影响   视图中的字段使用   内置的HTML表单助手。

     ASP.NET MVC 3还引入了一个新的   IClientValidatable接口即   允许ASP.NET MVC发现   运行时验证器是否有   支持客户验证。这个   界面已经设计好了   可以与各种各样的   验证框架。 MVC 3也   介绍了一个新的IMetadataAware   界面,简化您的方式   贡献给ModelMetadata   创作过程。

答案 2 :(得分:0)

article描述了在ASP.NET MVC中访问客户端验证中的容器对象的方法。您可以使用它来开始使用您自己的客户端验证