2012-06-03 47 views
2

我用我的網站上ASP.NET AJAX控制並啓用以下設置上的ScriptManager一個__cultureInfo JS對象:ASP.NET AJAX不渲染的en-US語言環境

scriptManager.EnableScriptGlobalization = true; 
scriptManager.EnableScriptLocalization = true; 

當我將瀏覽器語言切換到法語時,我在頁面上獲得了一個名爲__cultureInfo的豐富的JavaScript對象,其中包含我需要初始化日期選擇器和正確格式化日期字符串的所有好東西。

但是,當語言環境爲美國英語時,不會呈現對象的__cultureInfo

有沒有辦法強制ASP.NET AJAX渲染這個JavaScript變量/對象所有區域設置?我想初始化所有我的語言環境感知控件,而不需要特殊的美國英語。

+0

好所需要的,而我在等待一個明確的一切回答,我已經提前爲「en-US」中缺少的成員打包了:locale.getFirstDayOfWeek(),locale.getName()和locale.getLongDatePattern()。我檢查是否「typeof(__ cultureInfo)==='undefined'」。如果是這樣,那麼我返回硬編碼的英文值。這工作,但真的很klunky。 –

+0

我今天遇到這個問題也和我花了幾個小時: 「ClientCultureInfo.GetClientCultureScriptBlock(CultureInfo的CultureInfo的)」 有下面的代碼剪斷: '類型類型=(請將CultureInfo.DateTimeFormat == NULL)? null:cultureInfo.DateTimeFormat.Calendar.GetType(); (cultureInfo.Equals(enUS)&&(type == typeof(GregorianCalendar))) { return null; if }' 如果當前線程的文化是「en-US」,似乎「var __cultureInfo =」不會被ScriptManager渲染,我不確定MS爲什麼會這樣做。 –

回答

0

微軟克隆Invarient文化爲en-US所以即使未載入__cultureInfo你應該有你Sys.CultureInfo.CurrentCulture

​​