2

@Html.TextBoxFor負の値を受け入れず、特殊文字を使用せずに、カンマ区切り形式で通貨を表示するなどの要件があります。通貨が利用できないと同時に、この TextBoxFor の値を「利用不可」に変更しています。小数点の検証とテキスト入力のサポートを使用して、ビューでこれをどのように達成できますか?

@Html.TextBoxFor(m => m.SourceCurrencyValue, new { @Value=String.Format("{ViewBag.decimalplace}",Model.SourceCurrencyValue) })

ViewBag.decimalplace2 や 3 のような小数点以下の位置にする必要があります。

4

1 に答える 1

1

a を使用できますRegularExpression- これは小数点以下の桁数を 2 に制限しますが、それに応じて変更します。

[RegularExpression(@"^\d+,\d{0,2}$", 
     ErrorMessage = "Your error message")] 
public decimal SourceCurrencyValue { get; set; }

明確にするためにコメントを確認したら、上記のアイデアを使用できます。データ属性は、レンダリング時に要素にデータ属性を作成します。これをビューごとに行いたい場合は、これらの属性を手動で設定してみてください:

@{ var regex = string.Format(@"^\d+,\d{{0,{0}}}$", ViewBag.DecimalPlaces); }
@Html.TextBoxFor(model => model.SourceCurrencyValue, 
    new { data_val_regex_pattern = regex, data_val_regex = "Error message" })

これにより、渡した数に基づいて小数点以下の桁数が変更されます。

于 2015-07-09T10:05:19.093 に答える