对于相同的MVC控制器操作和模型,我希望根据模型上的值以及根据用户发出请求的方式应用不同的验证规则。
对于相同的Controller和相同的Action:
我对任何可能支持此问题的框架感兴趣,第三方或其他方式。
我在FluentValidation CodePlex项目上发布了一个类似的问题: https://fluentvalidation.codeplex.com/discussions/439281
我希望从该帖子中获得的代码片段:
IValidator GetValidator<T>(object model, Context context)
{
if (typeof(T) == typeof(MyModel))
{
var myModel = (MyModel)model;
if (myModel.Level == 1 && context.CurrentUser == 2)
{
return GetSpecialValidatorForMyModel();
}
else
{
return GetNormalValidatorForMyModel();
}
}
else
{
...
}
}
由于
答案 0 :(得分:0)
如果我从FluentValidationModelValidatorProvider继承,看起来我可以使用FluentValidation执行此操作。 我可以覆盖CreateValidator来实现我想要的。 我还将创建自己的使用MyFluentValidationModelValidatorProvider的Configure方法。