【问题标题】:Multiple validations on a property using FluentValidation使用 FluentValidation 对属性进行多次验证
【发布时间】:2010-12-21 13:06:58
【问题描述】:

我正在使用 FluentValidation 和 ASP.NET MVC 3。

我只是有几个关于验证的问题。

我的视图模型设置验证如下:

public NewsViewModelValidator()
{
   // Title is required
   RuleFor(x => x.Title)
      .NotEmpty()
      .WithMessage("Title is required");

   // Title must be less than or equal to 100 characters
   RuleFor(x => x.Title)
      .Length(1, 100)
      .WithMessage("Title must be less than or equal to 100 characters");
}

这是必须这样做,还是我需要将其包含在 1 个语句中?

我需要对 Title 属性进行 2 次验证,命名它必须是必填字段并且不能超过 100 个字符。下面是触发验证后的源码:

<td valign="top"><b>Title: *</b></td>
<td>
   <input class="input-validation-error" data-val="true" data-val-length="Title must be less than or equal to 100 characters" data-val-length-max="100" data-val-length-min="1" data-val-required="Title is required" id="Title" max="100" name="Title" size="100" type="text" value="" /><br>
   <span class="field-validation-error" data-valmsg-for="Title" data-valmsg-replace="true">Title is required</span>
</td>

它使用 2 个不同的类,一个用于每个验证类型。为什么是这样?现在我的表格不一致。我有另一个需要的输入字段,用于此的类是 input-validation-error,上面是 field-validation-error。

如何启用客户端验证?有人告诉我,如果我在 web.config 中设置了以下代码,那么客户端会自动打开:

<appSettings>
   <add key="ClientValidationEnabled" value="true"/>
   <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>

不会触发客户端验证。我需要包含 jQuery 库还是为我完成?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-2 asp.net-mvc-3 fluentvalidation


    【解决方案1】:

    您需要将这些添加到您的 _Layout.cshtml 中:

    <script src="/Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
    <script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>
    <script src="/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>
    

    【讨论】:

      猜你喜欢
      • 2011-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多