Asp.net-Mvc

允許數字中的點和逗號,而不僅僅是小數

  • October 16, 2013

我在本地化方面遇到問題。在巴西,我們使用逗號作為小數分隔符,而不是點。例如:

500,00
120,21
0,0001

我根據這個答案找到了這個問題的解決方案:MVC 3 jQuery Validation/globalizing of number/decimal field

但在巴西,我們也使用“.”。以數字表示,例如:

100.000.000,00
11.125,23

還有一件事情:

10.000 <> 10,000

第一個是一萬,第二個就是十。

使用全球化外掛,當使用者鍵入“.”時,會顯示驗證錯誤。我嘗試使用數據註釋DisplayFormat,但它沒有按預期工作……為了“解決”這個問題,我使用 javascript 手動設置和刪除“。” 從現場的數字來看,但是當我們需要改變任何東西時這是非常有問題的(我確信這是我可以使用的最糟糕的方法之一……)。你們知道在這種情況下如何進行嗎?

還有一個問題:我可以創建一個模型綁定器(或修改現有的)來接受這種數字格式嗎?

我剛剛找到了這個答案。

修復綁定到小數

它在我的場景中完美執行。這傢伙解決了我遇到的完全相同的問題!

我剛剛修改了幾行程式碼,但最重要的部分是這一行:

ModelBinders.Binders.Add(typeof(decimal), new DecimalModelBinder());

我對其進行了修改以接受可為空的值。

引用自:https://stackoverflow.com/questions/19387976