.net显示不带货币符号的本地化货币格式

.net显示不带货币符号的本地化货币格式,.net,model-view-controller,views,string-formatting,currency,.net,Model View Controller,Views,String Formatting,Currency,我有一个本地化的网站,需要显示货币字段 货币将保持不变,不会因文化而异 我已尝试按如下方式设置货币格式: @String.Format(CultureInfo.CurrentCulture, "{0:C}", item.GrossPayment) 但这不起作用,因为它显示了该文化固有的货币符号 我想显示12欧元,但上面显示的是12日元 所以,格式是我想要的,但没有货币符号,我可以硬编码 所以接下来我尝试了这个: €@String.Format(CultureInfo.CurrentCultur

我有一个本地化的网站,需要显示货币字段

货币将保持不变,不会因文化而异

我已尝试按如下方式设置货币格式:

@String.Format(CultureInfo.CurrentCulture, "{0:C}", item.GrossPayment)
但这不起作用,因为它显示了该文化固有的货币符号

我想显示12欧元,但上面显示的是12日元

所以,格式是我想要的,但没有货币符号,我可以硬编码

所以接下来我尝试了这个:

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

12.00欧元

显示,这样就解决了我的货币符号问题,但现在格式错误,因为在ja JP区域性中,不应该显示小数点或尾随零

12欧元


您知道如何在视图中指定自己的货币符号时保留格式吗?

您可以在区域性中更改货币符号。创建区域性副本,然后根据需要进行更改:

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

也许您可以将区域性的副本保存在某个静态变量中,这样就不必在每次请求时都进行克隆…

是的,这很有效,谢谢。看起来像是一个全能的黑客。真不敢相信没有什么内在的机制来达到我看来相当普通的要求