Попробуйте этот простой метод:
Я определил языки в выпадающем списке и у меня есть кнопка выбора
<asp:DropDownList ID="ddlCulture" DataTextField="DisplayName" DataValueField="Name"
runat="server" >
<asp:ListItem Value="es-MX">Spanish</asp:ListItem>
<asp:ListItem Value="en-US">English</asp:ListItem>
</asp:DropDownList>
<asp:Button ID="btnSelect" Text="Select" runat="server" OnClick="btnSelect_Click" />
Теперь код:
protected void btnSelect_Click(object sender, EventArgs e)
{
Session["uiculture"] = ddlCulture.SelectedValue;
Session["culture"] = ddlCulture.SelectedValue;
Response.Redirect(Request.Path);
}
protected override void InitializeCulture()
{
if(Session["culture"]!=null)
UICulture=Session["culture"].ToString();
}
Обновление : Извините, я забыл ключевое слово переопределения. Теперь включен, он должен работать.
Кстати, вы используете VB, извините, я не видел этого. Эквивалентный код:
Protected Sub btnSelect_Click(ByVal sender As Object, ByVal e As EventArgs)
Session("uiculture") = ddlCulture.SelectedValue
Session("culture") = ddlCulture.SelectedValue
Response.Redirect(Request.Path)
End Sub
Protected Overrides Sub InitializeCulture()
If Not Session("culture") Is Nothing Then
UICulture = Session("culture").ToString()
End If
End Sub