7

次のようなモデル プロパティがあるとします。

[Range(1, 31, ErrorMessage = "O dia de fechamento deve possuir valores entre 1 e 31")]
public int DataInicial { get; set; }

注釈にカスタム エラー メッセージが設定されていても、「32」以上のような何かを入力すると、範囲注釈のデフォルトのエラー メッセージ「31 以下の値を入力してください。」が表示されます。@Html.TextBoxFor(model => model.DataInicial)分野。

私はこの投稿を認識していますが、注釈レベルでカスタム メッセージを設定できれば、App_GlobalResources と .resx ファイルを設定したり、サードパーティのライブラリを設定したりしなくても動作するはずです。 resx ファイルを作成し、そこにすべての検証文字列を配置するのが「ベスト プラクティス」ですが...

メッセージが正しく表示されないので、どこが間違っているのでしょうか?

前もって感謝します。

4

1 に答える 1

-1

私は同じ問題に遭遇していて、少し実験しました。自分で MVC を学習しただけで、あまり明白ではありませんでしたが、解決策は素晴らしく、理にかなっているようです。問題は、どの検証属性がトリガーされるかにかかっています。

ErrorMessage関連付けられている検証に固有のものであることがわかりました。

簡単な例はそれを本当に明確にするはずです...

[Required(ErrorMessage="xxx may not be blank.")]
[Range(0.0,1000.0,ErrorMessage="The value entered must be 0 to 1000.00")]
public virtual double xxx ()  // snip...

空の場合、検証時に「xxx may not be blank」というメッセージが表示されます。値が入力されたが有効でない場合、「値が入力されました...」という別のエラーが表示されます。

于 2015-02-18T00:14:50.580 に答える