1

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

喜欢:-$150.00

代替: ($150.00)

--

我想这是我必须做的:

如何以红色显示负货币?

但我不知道他所说的“BaseController 类”是什么意思

4

2 回答 2

4

这一切都归结为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));
    }
}
于 2013-09-27T19:50:17.490 回答
4

所以将@Jon Skeet 答案与这个合并

真正的答案是将此方法添加到 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;
        }
于 2013-09-27T20:12:46.743 回答