我跟随POCO,其成本为浮动。
public class CostChart
{
public string itemType { get; set; }
public float? Cost{ get; set; }
}
我需要以货币格式退回费用,例如
$ U 4.882,50。
我应该使用哪种数据注释?
这就是我在视图中显示的方式。
<td>@Model.Cost</td>
答案 0 :(得分:42)
您是否尝试过使用DataType.Currency
:
public class CostChart
{
public string itemType { get; set; }
[DataType(DataType.Currency)]
public float? Cost{ get; set; }
}
或者,您可以像这样使用DataFormatString
:
[DisplayFormat(DataFormatString = "{0:C0}")]`
public float? Cost{ get; set; }
但我更喜欢用EditorFor
设置显示格式。这是关于Extending Editor Templates for ASP.NET MVC教程的精彩教程。
这样,您只需在一个地方编写货币的显示逻辑,并且每次要显示货币金额时都不需要添加该提取注释。
<强> - 修改
要使其在EditorFor中有效,您还可以将ApplyFormatInEditMode = true
添加到DataFormatString
的末尾,使该行成为:
[DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditMode = true)]
答案 1 :(得分:4)
试试这个:
public class CostChart
{
public string itemType { get; set; }
[DataType(DataType.Currency)]
public float? Cost{ get; set; }
}
如果你仍然没有在web.config下看到$符号 写下这行代码
<globalization culture ="en-us"/>
答案 2 :(得分:0)
请查看本文(Codeculous.)来验证和显示相应货币符号的另一种方法,而无需设置全球化,而只需添加数据注释DataType(DataType.Currency)
。
答案 3 :(得分:0)
您可以在RazorView中进行
@string.Format("{0:0,0.00,00}", Model.Cost)
答案 4 :(得分:0)
好吧,当我们谈论数据注释时,需要考虑两件事:
数据注解,即:
[DisplayFormat(DataFormatString = "{0:C0}")]
public decimal? Cost{ get; set; }
以及 Razor 页面中的标签,即:
@Html.DisplayFor(model => model.Cost)
如果不使用“DisplayFor”,数据注解就没用了。
另外一个细节,如果你想要小数位,你应该把“C”后面的最后一个“0”去掉,如下:
[DisplayFormat(DataFormatString = "{0:C}")]
希望对你有帮助,祝你好运!
答案 5 :(得分:0)
如果你想显示 4 位小数点(C 后面的数字表示点数),试试这样的方法
这适用于 float/decimal 和 double 类型:
[显示(名称=“价格”)] [DisplayFormat(DataFormatString = "{0:C4}")] 公开双价{得到;放; }