2012-03-07 13 views
3

ASP.NET MVCアプリケーションでは、フォームがあり、ViewModelを使用しているため、ModelBinderは厳密に型指定されたクラスにバインドできます。私は検証のためにDataAnnotationsを使用しています無効 '' yyy 'メッセージの値' xxx 'は無効です

public class FormViewModel 
{ 
    [Required] 
    public string SomeValue {get;set;} 

    [Range(0, 10, ErrorMessage="Enter a number between 0 and 10.")] 
    public byte? SomeOtherValue {get;set;} 

} 

これは素晴らしいです。ただし、ユーザーがSomeOtherValue(abcなど)の有効な値を入力しないと、問題が発生します。標準のMVCエラーがポップアップします。 '値' abc 'は' SomeOtherValue 'には無効です。私はこのメッセージをカスタマイズすることができないので、これは本当に面倒です。私はこのメッセージをローカライズする方法があることを知っていますが、それはちょうど意味がありません(私は一般的なメッセージは望ましくありません。

私はRegularExpression属性を 'SomeOtherValue'に適用しようとしましたが、これはバイト値のみを許可しますが、おそらく標準検証でこの検証を上書きします。プロパティのカスタム '値が有効ではありません'というメッセージを適用する方法はありますか?そうでなければ標準メッセージを無効にしますか?

答えて

0

ここでは、カスタム検証属性があなたのために機能していない場合に修正するための(理想的ではない方法である)IMHOを示します。コントローラには:もちろん

​​3210
+0

が、これは...そのメッセージとそのフィールドのすべてのエラーを置き換えます、あなたが余分なチェックを行うと、それは「値」で始まる場合にのみ、エラーを置き換えることができ、など – MikeSmithDev

関連する問題