の検証、私は次のコードは、 MVC 4 - DataAnnotations - ページが 価格で提出される場合はタイプ
[Required(ErrorMessage = "Price is required.")]
[Range(typeof(Decimal), "1", "9999", ErrorMessage = "Price xx.xx")]
public decimal? productPrice { get; set; }
を働いている=空のフィールドのエラーメッセージは、「価格が必要です。」です。 価格= 9999以上のエラーメッセージは「価格xx.xx」です。
ただし、「aaaa」と入力すると、エラーメッセージは 「フィールドproductPriceは数字である必要があります。
タイプが正しくない場合、どのようにメッセージを変更できますか? のように:。「価格1-9999間の進/番号でなければなりません
---- UPDATE:---- 以下のコードは、レンジの間、
NULL、未進で働いていましたしかし、「0.1" で動作していない
[Required(ErrorMessage = "Price is required.")]
[RegularExpression(@"[0-9]*\.?[0-9]+", ErrorMessage = "Price must be a Numbers only.")]
[Range(typeof(Decimal), "1", "9999", ErrorMessage = "Price must be a decimal/number between {1} and {2}.")]
public decimal? productPrice { get; set; }
".1"のようなさまざまなケースでこの正規表現は失敗します。正規表現を使用して数字を整理することはお勧めしません。正規表現は、一致する文字列(テキスト)入力を意味します。 RangeAttributeはこの問題を解決する最も適切な方法です。 Martinが言ったように@ JOBG –
".1"は、(3)DataAnnotationsのいずれかに捕らえられていません。何かご意見は? –
ちょうど@MartinDevillers Rangeメソッドを1-999から0-999に変更して、 ".1"を渡す必要があります。これは実際にはRangeがより良い解決策だと言いました。あなたはそれをチェックしたい場合には、正規表現を追加しました。 – JOBG