【问题标题】:Asp.Net MVC 2 Client validation implementation for Enterprise Library Validation Block企业库验证块的 Asp.Net MVC 2 客户端验证实现
【发布时间】:2010-04-19 11:29:18
【问题描述】:

我找到了一个very good article,关于如何在 MVC 2 中使用 EntLib 验证块进行服务器验证。 但正如那里指出的那样

EntLib 的验证应用程序块的当前设计使用复合模式;也就是说,当我们要求对一个对象进行验证时,它会返回一个包含所有要完成的验证工作的列表的验证器对象。虽然这在正常使用场景中非常方便,但不幸的副作用是我们无法“窥视”内部验证正在执行的操作,因此无法生成适当的客户端验证提示.

那么如何为 EntLib 实现客户端验证呢?有解决办法吗?

【问题讨论】:

    标签: asp.net-mvc-2 enterprise-library validation


    【解决方案1】:

    所以我找不到任何关于此的信息,所以我决定自己实现它并在 codeplex http://elvalweb.codeplex.com/ 上发布它

    【讨论】:

      【解决方案2】:

      阿列克谢,:-) 我有自己的验证任务实现,与 EntLib 无关,但在概念上非常相似。对于开发人员,它看起来如下所示:

         ValidationFactory.AddRule<IPerson>(
           x => string.IsNullOrEmpty(x.FirstName) &&
                string.IsNullOrEmpty(x.LastName),
           "Person should have a name", "validation set 1");
         IPerson p = UnityHelper.DefaultContainer.Resolve<IPerson>();
         ValidationResults res = ValidationFactory.Validate<IPerson>(p,"validation set 1");
         if(!res.IsValid)
         {
           foreach (ValidationResult vr in res)
           {
             var msg= vr.Message;
             var validated_instance = vr.Target;
             var Validator_instance = vr.Validator;
           }
         }   
      

      如果您对此感兴趣,请告诉我,我会将其从我当前的项目中删除为单独的解决方案。

      【讨论】:

      • 实际上,我正在寻找像这里一样weblogs.asp.net/scottgu/archive/2010/01/15/…看步骤3的客户端验证。所以据我所知,用你的框架实现这样的客户端验证是不可能的,因为它太灵活了,因此您无法在 JavaScript 中生成规则来处理客户端中的验证。但是 EntLib 已经确定了验证器,这可以用 JavaScript 以与数据注释类似的方式来描述。但由于复合模式,不可能获取验证器列表来创建 JavaScript 元数据。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-14
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多