簡體   English   中英

Html.EditorFor 用於帶逗號的十進制字段

[英]Html.EditorFor for a decimal field with commas

嗨,我為價格定義了一個小數字段,如下所示:

[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" />

如果我不使用逗號,一切正常。 IE

50.00 被保存並顯示為 50 500000 被保存並顯示為 500,000

但是,如果我嘗試輸入 500,000 即用逗號輸入,則會出現以下錯誤:

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

我希望編輯器字段能夠使用逗號,因為我希望大多數用戶在表單中輸入價格時使用逗號。

如何在輸入數字時允許使用逗號?

我有一個可能適用於您的情況的解決方案,首先我們將使用一些 javascript 來幫助我們

保留上面實現的文本框並在其旁邊添加標簽空白標簽

使用 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

你必須改變

[DisplayFormat(DataFormatString = "{0:N0}", ApplyFormatInEditMode = true)]

 [DataType(DataType.Currency)]

問題已經解決了!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM