【问题标题】:FluentValidation client-side validationFluentValidation 客户端验证
【发布时间】:2011-07-30 13:43:16
【问题描述】:

我尝试使用 GreaterThen 验证器,但它看起来不支持客户端验证。是否有支持客户端验证的 FluentValidation 验证器列表?

【问题讨论】:

    标签: asp.net-mvc fluentvalidation


    【解决方案1】:

    客户端支持的验证器列表位于this page,如下:

    • NotNull/NotEmpty(必需)
    • 匹配(正则表达式)
    • InclusiveBetween(范围)
    • 信用卡
    • 电子邮件
    • EqualTo(跨属性相等比较)
    • 长度

    【讨论】:

    • 哦,我怎么错过了...客户端不支持 GreaterThan 和类似验证器有什么具体原因吗?
    • @Idsa: 引用自fluentvalidation.codeplex.com/discussions/256069: “开箱即用的客户端启用的唯一验证器是那些直接对应于 MVC 的内置客户端验证器的验证器。”
    【解决方案2】:

    到目前为止,我知道没有列表,您可以创建自己的客户端验证器,以便创建 createrthen 也可以在客户端运行

    【讨论】:

      【解决方案3】:

      您可以使用 Form Helper。它为 Fluent-Validation 添加了客户端支持。

      Startup.cs

      services.AddFormHelper();
      With configuration: (optional)
      
      services.AddFormHelper(new FormHelperConfiguration
      {
          CheckTheFormFieldsMessage = "Your custom message...",
          RedirectDelay = 6000,
          DebugMode = true
      });
      

      查看:

      var formConfig = new FormConfig(ViewContext)
      {
          FormId = "ProductForm",
          FormTitle = "New Product",
          BeforeSubmit = "ProductFormBeforeSubmit", // optional
          Callback = "ProductFormCallback" // optional,
      };
      
      // <form id="@formConfig.FormId" asp-controller="Home" asp-action="Save"
      // ...
      
      @await Html.RenderFormScript(formConfig)
      

      控制器:

      [HttpPost, FormValidator]
      public IActionResult Save(FormViewModel viewModel)
      

      【讨论】:

        猜你喜欢
        • 2020-02-17
        • 2014-03-27
        • 1970-01-01
        • 2012-09-25
        • 1970-01-01
        • 2015-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多