2010-12-21 37 views
3

在ASP.NET MVC中工作時,我有一個帶有金額字段的視圖模型。量場被標記爲使用像這樣一個數據註釋貨幣類型...

[DisplayName("My Amount")] 
[DataType(DataType.Currency)] 
public decimal? Amount { get; set; } 

我使用的是格式字符串格式化也將金額爲貨幣的觀點...

<%: Html.TextBox("Amount", string.Format("{0:c0}", Model.Amount)) %> 

這會導致金額在顯示在視圖中時被格式化爲$ 100。

但是,當將金額提交回服務器時,由格式字符串插入的「$」導致金額未通過驗證作爲貨幣。任何人都可以告訴我如何設置這個,這樣我仍然可以使用「$」格式化數量,但它也會驗證爲貨幣?

回答

2

當你拉的是「$ 100」串回來,運行它通過Decimal.TryParse(),分配結果Amount財產(注意的TryParse返回其十進制量,如果成功的話,在out參數,它的返回值是布爾)。您可以指定一個NumberStyle(請參閱該鏈接中的示例),它將處理$符號。

+0

如果您需要配合範圍,該怎麼辦?我有問題的範圍將看到逗號和句點,並將其標記爲錯誤。我在這裏看到類似的問題:在評論中搜索範圍。文森特G的一篇文章 - 2011年9月13日星期二上午8點01分43秒。 – Vyache 2014-09-16 22:47:54