1
这是我用最新的流利验证库设置的代码。fluentvalidation不显示错误或更新Modelstate
public class ReleaseViewModelValidator : AbstractValidator<ReleaseViewModel>
{
public ReleaseViewModelValidator() {
RuleFor(r => r.Name).NotEmpty().Length(1, 30).WithMessage("Name must not be longer than 30 chars.");
}
}
[FluentValidation.Attributes.Validator(typeof(ReleaseViewModel))]
public class ReleaseViewModel { public int ReleaseId { get; set; }
[Remote("ReleaseExists", "Release", ErrorMessage = "This name already exists.")]
public string Name { get; set; }
public DateTime CreatedAt { get; set; } }
的Global.asax:
FluentValidationModelValidatorProvider.Configure();
VIEW:
model ILMD.Web.Models.ReleaseViewModel @* Remote Validation*@ <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginForm("Create", "Release"))
{
<p class="editor-label">@Html.LabelFor(model => model.Name)</p>
<p class="editor-field">@Html.EditorFor(model => model.Name)</p>
<p class="editor-field">@Html.ValidationMessageFor(model => model.Name)</p>
}
我所有的单元测试为ReleaseViewModelValidator
显示绿灯。精细。
但不那么酷的是,输入一些实时数据,如31个字符或不输入任何我没有看到任何客户端错误消息。
我还需要在我的部分视图中包含一些东西吗? ModelState
也是不正确的,它总是如此。
请问您的表单元素(HTML源代码)显示了不显眼的验证特性正在呈现(即数据val要求)?你可以显示表单元素的渲染输出吗? –