2015-10-01 157 views
0

我正試圖爲此問題找到一個可能的簡單解決方案。在網絡中找到的所有解決方案都不適合我。我在模型中有一個價格字段,可以使用逗號作爲30,5的十進制值。但驗證返回錯誤「The'字段'必須是數字」。「十進制字段必須是數字」

我使用MVC中使用的默認驗證,我認爲它使用jQuery。有什麼辦法可以避免這個問題?

型號代碼:

[Range(0.0, Double.MaxValue, ErrorMessage = "Out of range")] 
    [DataType(DataType.Currency)] 
    public decimal Price { get; set; } 
+0

確定您可以使用逗號?而不是_dot_? – Grundy

+0

逗號。我的默認文化是es-ES – Levimatt

+0

您是否設置了文化?我忘記了全球化運行在MVC-4 – epascarello

回答

2

我認爲錯誤是從客戶端驗證,而不是服務器端來了。如果它真的到達服務器,你應該沒問題。但是,ASP.NET的不顯眼驗證實際上使用jQuery驗證插件,正如您在documentation page for the number validator中所看到的,只有.作爲小數點分隔符纔會生效。您可能只需從字段中刪除數字驗證規則。

$("#Price").rules("remove", "number"); 

UPDATE

這篇文章可以幫助你:http://blog.icanmakethiswork.io/2012/09/globalize-and-jquery-validate.html。它解釋瞭如何基本上將jQuery Validation修補爲實際關注文化。

+2

鏈接已死! – Tobias