Asp.net 如何使用asp:DropDownList更改页面本地化?
我有一个本地化的应用程序,用户可以在下拉控件中选择自己喜欢的语言。OnSelectedIndexChanged事件之后,会发生回发,并且CurrentThread.CurrentCulture应设置为用户选择的值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 =
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()事件中 收藏
或者进行响应。重定向以便再次请求页面,然后设置区域性。到目前为止,此链接是最佳选择