2011-10-21 8 views
0

あなたのモデルに2つのフィールドを持っていると想像:私の問題はこれですMVC 3に非文字列のデータ型を検証

public class MyModel 
{ 
    [Required(ErrorMessageResourceType = typeof(Resources.Resource), ErrorMessageResourceName = "DateRequired"] 
    public DateTime Date; 

    [DataType(DataType.Currency, ErrorMessageResourceType = typeof(Resources.Resource), ErrorMessageResourceName = "NumberError")] 
    public decimal Number; 
} 

を:ユーザが(「AAA」のような)非有効な日付または非を入力した場合 - 無効な数字( 'bbb'のような)で、標準のjQueryの検証メッセージは次のように始まります: 'フィールド番号は数字でなければなりません'(Dateは同じです)。

フィールドのローカライズされたエラーメッセージを表示するにはどうすればよいですか?私は自分のフィールドを文字列に変換し、これらのフィールドを対応するデータベースフィールドに手動で変換できることを知っていますが、もっと簡単な方法でなければならないと思います。

答えて

0

言語に合った正しい "messages _ ##。js"ファイルを読み込む必要があります。たとえば、ブラジルのポルトガル語のバリデーションが必要な場合は、 http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/localization/messages_ptbr.js

ローカライゼーションコードの末尾にある「ptbr」を置き換えてください。もちろん、コードを取得して自分のメッセージを使用することができます。

+0

私はあなたが何を意味しているのかを見ていますが、C#からメッセージを100%カスタマイズできるようにしたいと考えています。しかし、あなたの解決策は唯一のものであることは間違いありません。 – olf

+0

これらのメッセージはjQuery Validateプラグインから直接読み込まれるため、実際には他の方法はありません。それらはハードコードされています。https://github.com/jzaefferer/jquery-validation/blob/master/jquery.validate.js#L267 – rdumont

+0

@rdumontリンクを更新してください。今は死んでいます。 –

関連する問題