3

こんにちは、次のように価格用に定義された小数フィールドがあります。

[Required(ErrorMessage = "Asking Price/Rent is required.")]
[Display(Name = "Asking Price/Rent*")]
[DisplayFormat(DataFormatString = "{0:N0}", ApplyFormatInEditMode = true)]
public decimal Price {get; set;}

次のように、ビューにこれのエディターフィールドがあります。

<div class="editor-label">
    @Html.LabelFor(model => model.Property.Price)
    @Html.EditorFor(model => model.Property.Price)
</div>

web.config に次のグローバリゼーション カルチャを設定しています。

<globalization uiCulture="en-GB" culture="en-GB" />

コンマを使用しないと、すべて正常に機能します。すなわち

50.00 は保存され、50 として表示されます 500000 は保存され、500,000 として表示されます

ただし、カンマを使用して 500,000 を入力しようとすると、次のエラーが発生します。

The value '500,000' is not valid for Asking Price/Rent*.

ほとんどのユーザーが価格をフォームに入力するときにカンマを使用すると予想されるため、エディタ フィールドでカンマを使用できるようにしたいと考えています。

数字の入力時にコンマを使用できるようにするにはどうすればよいですか?

4

2 に答える 2

0

私はあなたのケースでうまくいくかもしれない解決策を最初に持っています

上記で実装したようにテキストボックスを残し、その横にラベルを追加します空白のラベル

javascriptを使用して、テキストボックスに入力された数値を解析し、表示したいカンマを使用して新しい形式に変換します

このようにして、データ注釈の検証を追加する完全な機能を取得し、フォーマットされた数値をユーザーに表示することもできます

次のリンクは、これにも役立ちます

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString

http://weblogs.asp.net/scottgu/archive/2010/06/10/jquery-globalization-plugin-from-microsoft.aspx

http://yuilibrary.com/yui/docs/datatype/#formattingnumbers

于 2013-12-10T13:39:36.800 に答える