0

同じ MVC コントローラーのアクションとモデルに対して、モデルの値とユーザーがリクエストを行っていることに基づいて、異なる検証ルールを適用したいと考えています。

同じコントローラーと同じアクションの場合:

  • 高レベルのユーザーがログインしている場合、低レベルのユーザーとは異なる一連の検証ルールが必要です。
  • モデルに特定の値のフラグが付けられている場合、モデルには、このフラグのないモデルとは異なる一連の検証ルールが必要になります。

これをサポートする可能性のあるフレームワーク、サードパーティなどに興味があります。

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
    {
        ...
    }
}

ありがとう

4

1 に答える 1