まず、私はMVCにはかなり慣れていませんが、MVC3に既存のプロジェクトがあり、MVC4で遊んでいるので、両方のバージョンの回答をいただければ幸いです。
私の mvc ビューには、次の行があります。
Passwords must be at least @Membership.MinRequiredPasswordLength characters long.
モデルにはこれがあります:
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
(これらは MVC テンプレート プロジェクト用に自動生成されたものです)
私の web.config MembershipProvider には次の属性があります。
minRequiredPasswordLength="8"
これに関する問題は、最小長が 8 であることがユーザーに通知されるが、実際の検証は 6 になることです。当然、両方を同じ値に設定できますが、使用するだけの簡単な方法があるかどうかを知りたかったのです。それらの1つまたは両方を同期します。
私はこれを試しました:
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = Membership.MinRequiredPasswordLength)]
しかし、「属性引数は定数式でなければなりません...」というエラーが表示されます
カスタム検証属性を記述するオプションがあることは承知していますが、基本的に既存の検証ロジックを記述することになるため、これは避けたいと思います (値のソースを除く)。
または、モデルの MinimumLenght をビューに表示できますか?
変更を加える場所を 1 つだけにするにはどうすればよいですか?