c# - 没有符号的货币格式

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

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

3,000.00 雷亚尔 9,000.00 美元

只会有:

3,000.00 9,000.00

我正在使用像

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

果然符号出现了。 如何没有它?

最佳答案

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

<强>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$")]

关于c# - 没有符号的货币格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46748848/

相关文章:

c# - C# 中 Entity Framework 和列表的转换错误

c# - 如何准确复制您在屏幕上看到的内容?

javascript - 定义多个变量、数组或其他东西的正确方法?

c# - Queryable.OrderBy 对于 SQL Server 数据库不稳定吗?

c# - 数据为空。试图获得 8AM 和 CurrentTime 的 TIMESTAMPDIFF

c# - 如果值包含字符串,则获取字典键

c# - 使用 ASP.NET 5 ( MVC 6 ) 的 N 层架构

javascript - C# 类中的 Scripts.Render(创建 html 帮助程序)。在 C# 文件中使用 HtmlHelper 中的函数

c# - AsNoTracking 和删除

wpf - WPF 应用程序中的全局 Entity Framework 上下文