如何在 ASP NET MVC 中显示带负数而不是括号的货币

本文关键字:货币 ASP NET MVC 显示 | 更新日期: 2023-09-27 18:33:02

我希望我的值显示在视图中

喜欢: -$150.00

而不是: ($150.00)

--

我想这就是我必须做的:

如何以红色显示负货币?

但我不知道他所说的"基本控制器类"是什么意思

如何在 ASP NET MVC 中显示带负数而不是括号的货币

这一切都

取决于NumberFormatInfo.CurrencyNegativePattern.大概你得到了值 0,当听起来你想要 1 时。

目前尚不清楚您当前使用的是用户的CultureInfo、服务器的还是其他东西。但是,您始终可以克隆正在使用的任何区域性,然后修改NumberFormatInfo

示例代码:

using System;
using System.Globalization;
class Test
{
    static void Main()
    {
        var original = new CultureInfo("en-us");
        // Prints ($5.50)
        Console.WriteLine(string.Format(original, "{0:C}", -5.50m));
        var modified = (CultureInfo) original.Clone();
        modified.NumberFormat.CurrencyNegativePattern = 1;        
        // Prints -$5.50
        Console.WriteLine(string.Format(modified, "{0:C}", -5.50m));
    }
}

所以将@Jon双向飞碟答案与这个合并

真正的答案是将此方法添加到 MVC 项目的 Global.asax.cs 文件中。仅此而已。

关键是第二行:

protected void Application_BeginRequest(object sender, EventArgs e)
        {
            CultureInfo culture = new CultureInfo("en-us");
            culture.NumberFormat.CurrencyNegativePattern = 1;    
            Thread.CurrentThread.CurrentUICulture = culture;
            Thread.CurrentThread.CurrentCulture = culture;
        }