2

ユーザーがラジオ ボタンを使用して言語を選択できるログイン ページがあります。ログイン後、ユーザーは 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 が返されます。選択したカルチャをこのメソッドに渡すにはどうすればよいですか?

4

4 に答える 4