検証を実行するためにモデル外部の情報が必要な場合、モデルを検証する良い方法はありますか?ASP.NET MVC 3:モデル外部の情報が必要な場合のモデルの検証
public class Rating {
public string Comment { get; set; }
public int RatingLevel { get; set; }
}
システム管理者は、その後のコメントが必要なRatingLevels
を設定することができます。たとえば、次のようなモデルを考えます。これらの設定は、設定サービスを通じて利用できます。
モデルを完全に検証するには、そのモデルの外部に情報が必要です(この場合は設定サービス)。
私はこれまで、次のと考えてきました:
- をモデルにサービスを注入します。DefaultModelBinderはSystem.Activatorを使用してオブジェクトを作成し、通常の依存関係リゾルバを通過せず、新しいモデルバインダを作成せずにモデルにサービスを注入することはできません(それ以外の場合は、それについて行く)。
- サービスを注釈に挿入します。私はまだこれが可能であるとは思っていませんが、すぐに調査を行います。それはまだ不器用な感じです。
- カスタムモデルバインダーを使用してください。どうやら私はOnPropertyValidatingを実装して、カスタムプロパティ検証を行うことができます。私はまだそれを行う方法がわからないけれども、これは今のところ最も望ましいようです。
このタイプの検証には、上記の方法が最適ですか?
私はMVC5を使用していますが、私はまだそれがまだ関連していると思う。あなたは、 "MVCのIDependencyResolverはプロバイダを解決しようとします"と言いました。しかし、プロバイダをIoCコンテナにどのように登録しますか? (私の場合、統一)。 – Ben