【问题标题】:Currency format without symbol不带符号的货币格式
【发布时间】:2017-10-14 20:04:10
【问题描述】:

Razor 页面必须同时显示两种不同的货币,即:使用句点和逗号格式化数字,但不使用符号。因此,而不是:

3,000.00 雷亚尔      9,000.00 美元

只有:

3,000.00       9,000.00

我正在使用像

这样的数据注释方法
[DataType(DataType.Currency)]
public float PrecoUsd { get; set; }

这个符号肯定出现了。 怎么没有?

【问题讨论】:

  • 使用[DisplayFormat(DataFormatString = "{0:N2}")] 而不是[DataType(DataType.Currency)]

标签: c# asp.net-mvc entity-framework razor data-annotations


【解决方案1】:

DataTypeAttributeDataType.Currency 枚举值将输入设置为带有符号标记的货币值,具体取决于 web.config 中设置的当前文化或全球化属性。基于 .NET 数字格式字符串,您可以使用 DisplayFormatAttributeDataFormatString 使用多种表示形式:

1. Standard Numeric Format

[DisplayFormat(DataFormatString = "{0:N2}")]
public float PrecoUsd { get; set; }

2。 Custom Numeric Format

// using placeholder '#'
[DisplayFormat(DataFormatString = "{0:#,#.00}")]
public float PrecoUsd { get; set; }

// using placeholder '0'
[DisplayFormat(DataFormatString = "{0:0,0.00}")]
public float PrecoUsd { get; set; }

两者都可以使用DisplayForEditorFor来显示值:

@Html.DisplayFor(model => model.PrecoUsd)

@Html.EditorFor(model => model.PrecoUsd)

注意:#,#.## 的使用返回 3,000 而不是所需的 3,000.00(请参阅this demo 来证明这一点)。至于显示与数字输入分开的货币符号,请使用DisplayAttribute,例如[Display(Name = "US$")].

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-29
    • 2012-03-07
    • 1970-01-01
    相关资源
    最近更新 更多