2012-02-13 38 views
0

我对澳大利亚文化有问题。我设置的代码:MVC 3全球化 - 澳大利亚货币

 string id = "en-AU"; 
     string ret = Request.ServerVariables["HTTP_REFERER"] ?? "/"; 
     string culture = CultureHelper.GetValidCulture(id); 
     HttpCookie cookie = Request.Cookies["_culture"]; 
     if (cookie != null) 
      cookie.Value = culture; 
     else { 
      cookie = new HttpCookie("_culture"); 
      cookie.HttpOnly = false; 
      cookie.Value = culture; 
      cookie.Expires = DateTime.Now.AddYears(1); 
     } 
     Response.Cookies.Add(cookie); 

然后我想在AUD显示价格:

@String.Format("{0:C}", item.Price 

,但我得到e.g $55.00。为什么?

回答

2

在你的代码中,你实际上并没有在任何地方应用文化。喜欢的东西:

CultureInfo userCulture = CultureInfo.GetCultureInfo(culture);  
Thread.CurrentThread.CurrentCulture = userCulture; 
Thread.CurrentThread.CurrentUICulture = userCulture; 
+0

OK,但我仍然得到$代替澳元(我认为如果我通过了EN-AU返回EN-US) – Tony 2012-02-13 11:36:07

+0

使用'CultureInfo.CreateSpecificCulture(文化)'代替话,因为我认为GetCultureInfo会给你一个中立的文化(“en”vs en-AU或en-GB) – 2012-02-13 13:27:28

+0

不是,仍然获得$ sign – Tony 2012-02-13 13:50:20