2017-05-03 116 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

是的,那有用,谢谢。看起来像一个全能的黑客,但。不相信没有一些内置的机制可以实现我认为是相当普通的要求 –