【发布时间】:2013-04-05 17:45:18
【问题描述】:
对于相同的 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
{
...
}
}
谢谢
【问题讨论】:
标签: asp.net-mvc validation fluentvalidation