【问题标题】:ria services validationria 服务验证
【发布时间】:2011-02-22 07:05:37
【问题描述】:

我正在接受培训,可以在客户端上验证我的实体,但它不起作用。我有“必需”以及范围和字符串长度属性。问题是只需要在客户端进行验证。我之前在客户端上有 à validate 方法 我打电话给 SubmitChanges。但只有必需的属性会被验证。然后调用 SubmitChanges 并引发异常,因为我仍然有范围或字符串长度验证错误。我正在使用 TryValidateObject:可以吗?

请帮忙:-)

【问题讨论】:

    标签: validation service ria


    【解决方案1】:

    当您调用 SubmitChanges 时,它会返回一个具有称为 HasError 的属性的 SubmitOperation。如果这是真的,则意味着一个或多个实体出现错误。您还可以使用 EntitiesInError 属性,该属性将带您返回所有带有任何错误的实体,包括验证错误

    TestDomainContext tdc = new TestDomainContext();
    SubmitOperation so = tdc.SubmitChanges();
    if (so.HasError)
    {
      foreach (Entity entity in so.EntitiesInError)
      {
          if (entity.ValidationErrors.Count() > 0)
             //Loop through validation errors to see what property is in error
      }
      so.Cancel();
    }
    

    与执行 TryValidate 相比,这使您可以更好地控制错误。如果有错误,您也可以取消 SubmitOperation...

    【讨论】:

      【解决方案2】:

      验证无法进行,因为 TryValidateObject 仅执行“必需”验证。我们必须将最后一个参数设置为 true 以验证所有验证类型(Range Stringlength ...)。当然,在 SubmitChanges 方法中进行验证也不错,如果它已经可以在客户端进行验证,它就不会在服务器上进行验证。

      【讨论】:

      • 您是否正在混合和匹配来自不同框架的验证属性?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      • 2012-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多