1

私のマスターページ:

public partial class MasterPages_Main : System.Web.UI.MasterPage
{
    public bool IsLoggedIn;

    protected void Page_Load(object sender, EventArgs e)
    {

        // Check login
        LoggedInUser ThisUser = new LoggedInUser();
        IsLoggedIn = ThisUser.IsLoggedIn;

        Response.Write("Master" + IsLoggedIn.ToString());

    }

これは「True」を出力し、ログインしています。

私のコンテンツページでは、次のことを行います。

protected void Page_Load(object sender, EventArgs e)
{

    Response.Write("CONTENT:" + Master.IsLoggedIn.ToString());
}

しかし、これは「False」を出力します。

したがって、実際のページ出力は次のとおりです。

Content:False
Master:True

私のコンテンツ ページでは、ユーザーがログインしている場合はリダイレクトする必要がありますが、コンテンツ ページの観点からは、この値は常に false です。どうすればこれを解決できますか?

4

3 に答える 3

3

マスター ロードの前にコンテンツ ページ ロード イベントが発生します (ここから)。したがって、おそらくロジックを変更する必要があり、 master からいくつかのコンテンツ ページのメソッドを呼び出す必要がありますPage_Load。または、IsLoggedInMaster Init イベント ハンドラ内で設定します。

于 2011-03-20T16:45:37.827 に答える
2

MasterPage_LoadPage_Initに変更します。これにより、コンテンツ ページの前に強制的に実行されます。

于 2011-03-20T16:45:51.197 に答える
1

マスター ページは、Page_Load() のコードの後に​​呼び出されます。これを試して:

Protected void Page_Load(object sender, EventArgs e)
{
    base.Page_Load(sender,e); 
    Response.Write("CONTENT:" + Master.IsLoggedIn.ToString());
}
于 2011-03-20T16:35:35.547 に答える