簡體   English   中英

為什么.NET Core MVC中的控制器和視圖中的Culture Info不同

[英]Why is Culture Info different in controller and view in .NET Core MVC

我認為.Net Core的社區和有關本地化的文檔很差。 這就是為什么我有一些問題。

當我在Controller中更改“文化信息”(參見下面的代碼)運行良好,但在此之后我查看視圖中的“文化信息”是不同的。 請幫我解決這個問題。

System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo('en-GB');

System.Threading.Thread.CurrentThread.CurrentUICulture = System.Threading.Thread.CurrentThread.CurrentCulture; 

為什么?

因為dotnet核心更關注異步編碼意味着每個部分都運行任務。 因此控制器動作是1個任務。 創建/執行視圖是另一項任務(或多項任務)。

任務使用池在不同的線程中運行(通過TaskSchedular )(在任務完成時重新使用線程)。 因此沒有保證它在同一個線程中運行。

如何處理文化?

請查看文檔: https//docs.microsoft.com/en-us/aspnet/core/fundamentals/localization 它們提供了完美的工作原理。 (他們告訴你使用: CultureInfo.CurrentCulture但請閱讀文檔)。

您可能想要檢查此屬性:

var cultureInfo = new System.Globalization.CultureInfo('en-GB');
Thread.CurrentThread.CurrentCulture = cultureInfo;
Thread.CurrentThread.CurrentUICulture = cultureInfo;
CultureInfo.DefaultThreadCurrentCulture = cultureInfo;
CultureInfo.DefaultThreadCurrentUICulture = cultureInfo;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM