Clotho の偶感録

個人用メモを世界に垂れ流す。

短信——煮詰まった

仕事忙しくてブログを纏める時間がないんですわー。
明日からの 3 連休はキャンプに行けるようにがんばる。

ところで煮詰まってるんでぶつくさ言わせて欲しい。

詳細は全てはしょるけど,ASP.NET MVC 4 の DataAnnotations で CompareAttribute をつけたモデルの検証で,検証失敗させても ErrorMessage に与えた文字列がブラウザに表示されなくて悩んでるんだよね。
リソースにしても変わらないし CompareAttribute のカスタムはほとんど 1 から作る感じっぽいし。どうしようかな。

Model はこんな感じ。

public class FugaViewModel
{
    [DataType(DataType.Password)]
    [Required(ErrorMessage = "パスは必須だよ")]
    [RegularExpression(@".{8,}", ErrorMessage = "8 文字以上入れなよ")]
    [Display(Name = "ぱすわーど")]
    public string Password { get; set; }
}

public class HogeViewModel : FugaViewModel
{
    [DataType(DataType.Password)]
    [Required(ErrorMessage = "確認用パスワード入れなよ")]
    [Compare("Password", ErrorMessage = "上とパスワード違うぞ")]
    [Display(Name = "ぱすわーど (確認)")]
    public string PasswordForConfirm { get; set; }
}

で,"ぱすわーど (確認)" 欄の内容が "ぱすわーど" と違うときは 「上とパスワード違うぞ」 ってエラー表示して欲しいんだけど,「'ぱすわーど (確認)' と 'ぱすわーど' が一致しません。」 っていうデフォルトのメッセージになるんだよね。

どうしたもんか。