【问题标题】:How can I show Currency with Negative instead of Parentheis in ASP NET MVC?如何在 ASP NET MVC 中显示带负数而不是括号的货币?
【发布时间】:2013-10-04 05:31:00
【问题描述】:

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

点赞:-$150.00

代替:($150.00)

--

我想这是我必须做的:

How do I display a negative currency in red?

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

【问题讨论】:

    标签: c# asp.net-mvc cultureinfo negative-number


    【解决方案1】:

    这一切都取决于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));
        }
    }
    

    【讨论】:

    • 我该怎么做?我的意思是我应该把它放在我项目的哪个部分来更新我所有的货币格式字段?
    • @Laggel:说实话,我对 MVC 国际化的了解还不够多 - 但我已经编辑了我的答案,向您展示如何改变克隆文化。我知道这不是一切,但至少是一个开始......
    • 注意:我说的是一个 ASP NET MVC 项目。我没有主要方法的地方。而且我不使用 string.Format 来格式化值,DataAnnotations 和 @Html.DisplayFor 会自动格式化
    • @Laggel:是的,我知道 - 您需要进一步了解 MVC i18n,以及您的特定项目在用户文化等方面正在做什么。(我怀疑有各种在使用哪种文化方面有不同的选择。)请参阅hanselman.com/blog/… 开始(虽然现在有点旧了。)
    【解决方案2】:

    所以将@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;
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-16
      • 1970-01-01
      • 2015-10-09
      • 1970-01-01
      • 1970-01-01
      • 2012-07-13
      相关资源
      最近更新 更多