我的小数属性上有一个DisplayFormat属性,以将其显示为货币:
[DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditMode = true)]
public decimal Price { get; set; }
这是我在视图中打印的方式:
@Html.DisplayFor(x => x.Price)
如果Price的值为3000,则显示为:
kr. 3.000
但是我希望它以金额右侧的货币显示,例如:
3.000 kr.
我该怎么做?
答案 0 :(得分:0)
使用的货币格式由相关的CultureInfo
实例定义。
某些方法的重载采用IFormatProvider
(由CultureInfo
实现),否则为CultureInfo
中的默认Thread.CurrentCulture
。使用剃刀助手时,后一种情况适用。
具体来说,CultureInfo.NumberFormat.CurrencyPositivePattern
和.CurrencyNegativePattern
确定货币符号的位置。
您可以使用CultureAndRegionInfoBuilder
创建具有不同设置的自定义区域性。
不过,您最好添加自己的特定于货币的助手,该助手使用自定义NumberFormatInfo
(可能通过Razor显示模板)并使用UIHintAttribute
来指定应使用该显示模板的属性。
答案 1 :(得分:0)
此属性C(标准格式定义正货币值)具有下表中的值之一。符号“ $”是CurrencySymbol,n是数字。
以便克隆原始文化:
CultureInfo swedish = new CultureInfo("sv-SE");
swedish = (CultureInfo)swedish.Clone();
swedish.NumberFormat.CurrencyPositivePattern = 3;
swedish.NumberFormat.CurrencyNegativePattern = 3;