asp.net-mvc-3 - 未调用FluentValidation验证程序

原文 标签 asp.net-mvc-3 entity-framework-4 partial-classes fluentvalidation

我有一个MVC 3站点,但正在使用非MVC FluentValidation dll。我创建了一个验证器类,并将所有RuleFors放入构造函数中,然后在我的模型类上设置了一个属性

[FluentValidation.Attributes.Validator(typeof(MyValidator))]


问题是验证器类上的构造函数永远不会被调用。我认为可能是因为我没有使用DLL的MVC版本,但是后来我也无法使用该版本。

任何帮助,将不胜感激。

谢谢,

萨钦

最佳答案

在您的Application_Start中,确保已初始化自定义流利的验证模型验证程序提供程序,否则将不会发生任何事情:

FluentValidation.Mvc.FluentValidationModelValidatorProvider.Configure();


FluentValidationModelValidatorProvider类在FluentValidation.Mvc程序集中定义。请查看integrating FluentValidation into an ASP.NET MVC site的文档。

当您调用一个控制器操作,并使用以[Validator]属性修饰的模型作为参数时,将触发验证器:

[HttpPost]
public ActionResult Process(MyViewModel model)
{
    ...
}

相关文章:

asp.net-mvc-3 - MVC3 RenderPartial和ViewBag

c# - 在ASP.NET MVC 3中多次传递模型

javascript - 使用Ajax.ActionLink删除后,从视图页面中删除图像

c# - 使用实体SQL查询概念模型

entity-framework - 分离实体框架poco和objectcontext

c# - 与抽象类相比,使用部分类有什么好处?

c# - 局部类/局部方法与基类/继承类

java - 动画排序算法

entity-framework - DbSet.Remove和DbContext.Entry(entity).State = EntityState.Deleted之间的区别

c# - 密封的局部类的重要意义是什么?