Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 根据用户选择更改asp.net应用程序中的用户语言_C# - Fatal编程技术网

C# 根据用户选择更改asp.net应用程序中的用户语言

C# 根据用户选择更改asp.net应用程序中的用户语言,c#,C#,我有一个支持全球化的web应用程序。因此,我需要为用户提供一个选择,以选择他/她登录的语言。现在的问题是,我必须在何处进行更改才能设置用户的首选语言。使用ASP.NET配置文件功能将用户的首选语言声明为配置文件属性。看 请注意,这是对@Ikaso答案的重新表述,因此他/她应该回答并获得学分好的,我得到了解决方案: 我在global.asax文件中尝试了以下更改 protected void Application_PreRequestHandlerExecute(Object sender, E

我有一个支持全球化的web应用程序。因此,我需要为用户提供一个选择,以选择他/她登录的语言。现在的问题是,我必须在何处进行更改才能设置用户的首选语言。

使用ASP.NET配置文件功能将用户的首选语言声明为配置文件属性。看

请注意,这是对@Ikaso答案的重新表述,因此他/她应该回答并获得学分

好的,我得到了解决方案: 我在global.asax文件中尝试了以下更改

protected void Application_PreRequestHandlerExecute(Object sender, EventArgs e)
{           
 if (Session["userCultureInfo"] != null)
  {             
   Thread.CurrentThread.CurrentUICulture = new CultureInfo(Session["userCultureInfo"].ToString());
   }           
}

除了您得到的解决方案之外,您还可以拥有自己的HTTP模块,并通过URL(例如)在其中设置区域性。但在页面生命周期开始之前,您需要在模块中执行此操作。

我尝试覆盖InitializeCulture方法,但这仅设置当前页面的设置。另一种可能的方法是根据用户选择的语言覆盖web.config文件设置。但我认为这可能会影响其他用户登录时的设置。我认为此设置应存储在您的用户首选项中,并在用户每次访问您的应用程序时加载。好的,假设我们在会话变量中获得了区域性信息。现在我必须在哪里编写代码来更改语言。