我有一个登录页面,用户可以通过单选按钮选择他的语言,登录后用户被重定向到 Default.aspx,我使用以下方法设置页面文化:
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"%>
<%@ Import Namespace="System.Resources" %>
<% @Import Namespace="System.Globalization" %>
<% @Import Namespace="System.Threading" %>
<script runat=server>
protected override void InitializeCulture()
{
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Session["lang"].ToString());
Thread.CurrentThread.CurrentUICulture = new CultureInfo(Session["lang"].ToString());
base.InitializeCulture();
}
</script>
如何将登录页面中选择的语言传递给 Default.aspx 页面中的此方法?我试图通过会话传递它,但我收到了这个错误:
System.NullReferenceException:“对象引用未设置为对象的实例。” System.Web.SessionState.HttpSessionState.this[string].get 返回 null。
因为此方法发生在任何控制或会话启动之前的早期阶段,这就是它返回 null 的原因。知道如何将选定的文化传递给这种方法吗?