2017-05-03 114 views
0

我有一個需要顯示貨幣字段的本地化網站。.net顯示沒有貨幣符號的本地化貨幣格式

貨幣將保持不變,並

我試圖格式化這樣的貨幣不會每文化變革:

@String.Format(CultureInfo.CurrentCulture, "{0:C}", item.GrossPayment) 

但這不起作用,因爲它顯示的貨幣符號本土到那個文化。

我想顯示€12,但上面顯示¥12

因此,該格式是我想要的,但沒有貨幣符號,我可以只是硬編碼

所以下次我嘗試這樣做:

€@String.Format(CultureInfo.CurrentCulture, "{0:N}", item.GrossPayment) 

在JA-JP

€12.00

得到顯示,從而這得到了我的貨幣符號的問題,但現在的格式是錯誤的,因爲在JA-JP文化不應該有小數點或尾隨零它應顯示爲

€12

任何想法如何保存格式,同時在視圖中指定我自己的貨幣符號?

回答

0

您可以更改文化中的貨幣符號。創建文化的一個副本,然後改變任何你想要的:

var culture = (CultureInfo)CultureInfo.CurrentCulture.Clone(); 
culture.NumberFormat.CurrencySymbol = "€"; 
@String.Format(culture, "{0:C}", 12); 

也許你可以保留一些靜態變量文化的副本,所以不會有克隆在每次請求......

+0

是的,那有用,謝謝。看起來像一個全能的黑客,但。不相信沒有一些內置的機制可以實現我認爲是相當普通的要求 –