2013-10-31 47 views
0

我有一個我想用丹麥語運行的MVC網站。.net mvc在同一頁上應用不同的區域設置

基於這個線程,我得到了它的工作。

.Net MVC4 Culture set correct, but validation still English

但我也有幾個地方我想生成JavaScript,在這裏我想區域設置是英語,因爲這是在JavaScript中有效的唯一的事情。

@Model.price 

會給9,95

string.Format("{0:#.##}",Model.price) 

也給9,95。

而且

string.Format("{0:#,##}",Model.price) 

會給予10

那麼,什麼是建立正確的「英語」的JavaScript使用剃刀時,該網站是在丹麥的最佳做法?

+0

澄清:您是否想知道在具有不同默認語言的網站上工作時,如何編寫所有JavaScript英文版? – bump

+0

默認的區域設置是丹麥語,是的,但如果JavaScript獲得「var foo = 5,7」,那麼它會窒息。它希望「var foo = 5.7」,但我所有的小數現在都使用逗號。 –

+0

通過CultureInfo.InvariantCulture作爲第一個參數。這一切都需要 –

回答

1

你的問題是沒有特定文化的String.Format仍然會使用當前線程的文化來解析和轉換爲字符串。通過將頁面的文化設置爲丹麥語,您指定丹麥語也應該用於字符串轉換。

可以指定你想要把它當作第一個參數String.Format使用文化,如:

string.Format(CultureInfo.InvariantCulture,"{0:#,##}",Model.price) 

您可以通過文化在一個參數的IFormatProvider預計任何方法。 String.Format和幾乎所有的ToString()和Parse()方法都有接受這個參數的重載。

工具,比如ReSharper的甚至會提醒你可能的轉換錯誤,只要您使用這樣的方法而沒有經過特定的文化

順便說一句,使用正確的文化是CultureInfo.InvariantCulture,不是英語,否則你可能最終與美式日期等

+0

謝謝。好答案。 –

相關問題