2012-06-24 46 views
3

我正在使用MVC3的詳細視圖,需要顯示格式化的美元金額,如$ 1,200.00。在這種情況下,控制器將MonthlyMortgage的值傳遞給視圖。下面的代碼行不顯示正確的字符串格式。顯示的是$ 1200.00,我需要的是$ 1,200.00。字符串使用貨幣雙值格式顯示不正確。

我曾嘗試:

[email protected]("{0:c}", Html.DisplayFor(model => model.MonthlyMortgage)) 

,我已經試過這樣:

[email protected]("{0:#,###,###,##0.000}", Html.DisplayFor(model => model.MonthlyMortgage)) 

可有人請搭乘飛機這是爲什麼不工作?

+0

可能是這種重複:http://stackoverflow.com/questions/890100/how-do -i-format-a-double-to-currency-round-to-the-nearst-dollar –

回答

11

您不需要使用Html.DisplayFor,因爲它將返回MvcHtmlString,因此string.Format不適用。

你的模型只需使用string.Format

@String.Format("{0:c}", Model.MonthlyMortgage) 

注意你並不需要的「$」符號了,因爲{0:c}會照顧它。

+0

這很好。我從來沒有想過直接使用Model屬性來糾正我的問題。謝謝... – Shawn

6

@nemesv有一個直接的答案。另一種選擇是從視圖中刪除String.Format(),並使用DataAnnotations將格式添加到MonthlyMortgage中。

從MSDN一個例子:

[DisplayFormat(DataFormatString = "{0:C}")] 
public Decimal ListPrice { get; set; } 

而且順便說一句,#,###,###,##0.000可縮短至#,##0.00