我正在使用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个不同的类,每个验证类型一个。为什么是这样?现在我的表格不一致。我有另一个输入字段是必需的,用于此的类是输入验证错误,上面是字段验证错误。
如何启用客户端验证?有人告诉我,如果我在web.config中设置了以下代码,则客户端会自动打开:
<appSettings>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
未触发客户端验证。我需要包含jQuery库还是这样做?
答案 0 :(得分: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>