Razorビューを使用してMVC3を使用して開発しているプロジェクトがあります。
ユーザーが金額を入力できるDecimalデータ型があります。データはサードパーティに送信され、サードパーティは金額の小数点以下2桁までであると主張します。金額はゼロより大きくなければなりません。最大量は、データベースから取得した値によって異なります。したがって、たとえば9999.99の最大範囲をハードコーディングすることはできません。
例:-現在のトランザクションの最大金額が123.45であるとします。ユーザーがテキストボックスに入力する量が0.01から123.45の間であることを検証する必要があります。ユーザーが123.46と入力すると、最大値を超えているため、これは無効になります。ユーザーが100.123と入力すると、小数点以下2桁までを超えるため、これも無効になります。
これまでの研究…まずは小数点以下の問題を解決しようと思いました。これを私のモデルに適用するとうまくいくかどうか疑問に思いました...
<DisplayFormat(ApplyFormatInEditMode:=True, DataFormatString:="{0.00}")>
Public Property PaymentAmount As Decimal
意見:-
@Html.TextBoxFor(Function(model) model.PaymentAmount)
...しかし、これは何もしないようです。
質問:-
0.01からXまでの値を受け入れる小数点以下2桁に制限された範囲の検証を作成するにはどうすればよいですか(Xは、ビューを表示する前にデータベースから返される事前に決定された最大値です)。
これは、目立たないクライアント側の検証でも機能しますか?
カスタム検証属性を作成し、これをクライアント側の検証に接続することを考えていました。これは機能すると思いますが、一見すると非常に単純な問題のように思われるものに対してはやり過ぎのようです。