2012-02-13 35 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