Asp.net 如何使用asp:DropDownList更改页面本地化?

Asp.net 如何使用asp:DropDownList更改页面本地化?,asp.net,localization,webforms,Asp.net,Localization,Webforms,我有一个本地化的应用程序,用户可以在下拉控件中选择自己喜欢的语言。OnSelectedIndexChanged事件之后,会发生回发,并且CurrentThread.CurrentCulture应设置为用户选择的值 Login.aspx.cs public partial class Login : BasePage { protected void LanguageDrop_changed(object sender, EventArgs e) { var lang =

我有一个本地化的应用程序,用户可以在下拉控件中选择自己喜欢的语言。OnSelectedIndexChanged事件之后,会发生回发,并且CurrentThread.CurrentCulture应设置为用户选择的值

Login.aspx.cs
public partial class Login : BasePage
{
   protected void LanguageDrop_changed(object sender, EventArgs e)
   {
       var lang = LanguageDropDown.SelectedValue;
       Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang);
       Thread.CurrentThread.CurrentCulture = new CultureInfo(lang);
   }
}
但是,它不能正常工作,因为LanguageDrop_click事件在InitializeCulture之后触发,因此某些默认区域性被初始化,控件被本地化为默认语言,然后设置CurrentThread.CurrentCulture。所以用户必须再次刷新页面,才能以所选语言看到它们

更新: 我找到了部分答案:
他从表单集合中检索InitializeCulture()事件中的语言下拉列表值

根据我的经验,很遗憾,没有更好的选项,您将不得不执行另一次刷新。你的推理是正确的。

最好的答案是我提供的链接

他检索语言下拉列表值 在表单的InitializeCulture()事件中 收藏


或者进行响应。重定向以便再次请求页面,然后设置区域性。

到目前为止,此链接是最佳选择