我希望我的价值观显示在视图中
喜欢:-$150.00
代替: ($150.00)
--
我想这是我必须做的:
但我不知道他所说的“BaseController 类”是什么意思
这一切都归结为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 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;
}