我有一个MVC 3站点,但我正在使用非MVC FluentValidation dll。我已经创建了一个验证器类,并在构造函数中放置了所有的RuleFors,然后在我的模型类上设置了一个属性
[FluentValidation.Attributes.Validator(typeof(MyValidator))]
问题是验证器类上的构造函数永远不会被调用。我想这可能是因为我没有使用dll的MVC版本,但后来我也无法让这个版本适用于我。
任何帮助都将不胜感激。
谢谢,
萨钦
答案 0 :(得分:6)
在Application_Start
中确保您已初始化自定义流畅验证模型验证程序提供程序,否则不会发生任何事情:
FluentValidation.Mvc.FluentValidationModelValidatorProvider.Configure();
FluentValidationModelValidatorProvider
类在FluentValidation.Mvc
程序集中定义。请查看integrating FluentValidation into an ASP.NET MVC site的文档。
当您使用[Validator]
属性作为参数修饰的模型调用控制器操作时,将触发验证器:
[HttpPost]
public ActionResult Process(MyViewModel model)
{
...
}