iT邦幫忙

0

C# session似乎沒動作?!

Session["MyLevel"] = readD.GetInt32(6); // '取該員工內網 等級

if (Session["MyLevel"] != null)
{
//string level = Session["MyLevel"].ToString();
if (Session["MyLevel"].ToString().Trim() == "0") // '轉網址
{
Server.Transfer("Frameset_NOAdmin.aspx");
}
else //'轉網址
{
Server.Transfer("Frameset.aspx");
}
}

主要目的是 先進資料庫抓取讀取等級以後 用SESSION傳送至IF ELSE內判斷要轉到哪個網頁

但是判斷完成以後 卻沒有把網頁導向過去

想請問一下我這樣寫是哪裡出錯了嗎 謝謝

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2

dimitry1001提到:
if (Session["MyLevel"] != null)

代表... Session["MyLevel"] 是 Null 狀態

dimitry1001提到:
Session["MyLevel"] = readD.GetInt32(6);

請用 Debug 中斷點檢查...readD.GetInt32(6) 是否有讀出值傳給 Session["MyLevel"]

if (Session["MyLevel"] != null)

我的認知是 這行是 判斷Session["MyLevel"]這個是不是NULL 非NULL表示有抓到值 所以繼續下去 是否認知有誤?

嗯~認知無誤...

0
javascript
iT邦新手 2 級 ‧ 2013-05-17 17:00:28

測試了一下,

你所寫的判斷式,沒有問題才對。

你應該是卡在Server.Transfer

我有試著用Response.Redirect去導入其它的頁面,

只是我想這樣子你導入的頁面就抓取不到Session["MyLevel"] 它的值了。

0
JamesDoge
iT邦高手 1 級 ‧ 2022-12-28 02:34:39

按照你提供的程式碼
加上 try-catch 語句來捕獲 Server.Transfer 沒有把網頁導向過去的原因:

int? myLevel = readD.GetInt32(6);

if (myLevel != null)
{
    Session["MyLevel"] = myLevel;
    string targetPage = myLevel == 0 ? "Frameset_NOAdmin.aspx" : "Frameset.aspx";

    try
    {
        Server.Transfer(targetPage);
    }
    catch (Exception ex)
    {
        Console.WriteLine("Error transferring to " + targetPage + ": " + ex.Message);
    }
}

我要發表回答

立即登入回答