用于货币格式的ASP.NET MVC数据注释

imm*_*rza 21 asp.net-mvc

我跟随POCO,成本为浮动.

public class CostChart
{
    public string itemType { get; set; }
    public float? Cost{ get; set; }

}
Run Code Online (Sandbox Code Playgroud)

我需要以货币格式返回成本,例如

$ U 4.882,50.

我应该使用哪些数据注释?

这就是我在视图中显示的方式.

<td>@Model.Cost</td>
Run Code Online (Sandbox Code Playgroud)

Cac*_*nta 45

你尝试过使用过DataType.Currency:

public class CostChart
{
    public string itemType { get; set; }
    [DataType(DataType.Currency)]
    public float? Cost{ get; set; }

}
Run Code Online (Sandbox Code Playgroud)

或者,您可以DataFormatString像这样使用:

[DisplayFormat(DataFormatString = "{0:C0}")]`
public float? Cost{ get; set; }
Run Code Online (Sandbox Code Playgroud)

但我更喜欢用显示格式设置EditorFor.这是一个关于ASP.NET MVC教程的扩展编辑器模板的精彩教程.

这样,您只需在一个地方编写货币的显示逻辑,并且每次要显示货币金额时都不需要添加该提取注释.

- 编辑

要使它在EditorFor中工作,您还可以添加ApplyFormatInEditMode = true到生成行的末尾DataFormatString:

[DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditMode = true)]
Run Code Online (Sandbox Code Playgroud)

  • 小数是更好的数据类型 (2认同)

Már*_*lez 10

尝试使用:

 [DisplayFormat(DataFormatString = "{0:C0}")]
Run Code Online (Sandbox Code Playgroud)

访问此帖子 /sf/answers/1386034751/


小智 6

尝试这个 :

public class CostChart
  {
    public string itemType { get; set; }

    [DataType(DataType.Currency)]
    public float? Cost{ get; set; }
  }
Run Code Online (Sandbox Code Playgroud)

如果还是没有看到$符号,在web.config下写这行代码

<globalization culture ="en-us"/>
Run Code Online (Sandbox Code Playgroud)