2010-04-05 66 views
1

錯誤,爲什麼我得到這個錯誤:未設置爲對象的實例 我不能使用會話在Page_Load中,我得到了下面

對象引用。

當我把這個代碼在我的Page_Load:

protected void Page_Load(object sender, EventArgs e) 
{ 
    BackEndUtils.OverallLoader(); 

    string Teststr = Session["Co_ID"].ToString(); 
} 

=========================== ===============================================

當用戶登錄到我的網站和本次會議的工作在其他領域

本次會議是由...

感謝您的關注

================================================= =========================

謝謝您的回答

我刪除BackEndUtils.OverallLoader();但錯誤依然存在

我試着Teststr = Convert.ToString(Session["Co_ID"]);和錯誤消失了 - 但我不知道爲什麼會是空

在該屆會議上完美的作品=如以這樣的形式

什麼事按鈕等領域?

我的網頁標記是這樣的:

<%@ Page Title="" Language="C#" MasterPageFile="~/Admin/AdminBackend.Master" AutoEventWireup="true" CodeBehind="Personel.aspx.cs" Inherits="Darman.Admin.Personel" Theme="DefaultTheme" %> 

=============================== ==================================================

我把這個代碼在一個按鈕是這樣的:

string Teststr = Convert.ToString(Session["Co_ID"]); 

當我按下該按鈕在頁面加載(回傳)+ IN Button_Click此代碼的工作完美,顯示了我23(我Co_ID)

但是,當我在瀏覽器中運行我的頁面(第一次)頁面加載時,此代碼顯示爲空。

爲什麼?

非常感謝

+0

感謝您的關注 下方「點擊刻度標記爲」 - >什麼是馬克 – MoonLight 2010-04-05 09:13:00

+0

我發現它的名字 - soryy – MoonLight 2010-04-05 09:14:31

回答

1

你可以嘗試:

Teststr = Convert.ToString(Session["Co_ID"]); 

將處理null秒;還請檢查:您是否禁用了頁面的會話狀態?

<%@ Page language="c#" ... EnableSessionState="false" %> 

(雖然我會或許有望在這種情況下,一個比較明顯的錯誤)

+0

非常感謝您的關注 – MoonLight 2010-04-05 08:51:27

+0

但爲什麼Session [「Co_ID」]爲空?不應該。 在其他方面它完美的工作 – MoonLight 2010-04-05 09:24:21

+0

@LostLord - 他們是否登錄?它是否是相同的ASP.NET應用程序實例?它是應用程序池回收?很多可能性...... – 2010-04-05 10:24:10

1

可能「Co_ID」會話參數不存在。檢查前:

if (Session["Co_ID"] != null) 
{ 
    Teststr = Session["Co_ID"].ToString(); 
} 
0

的異常可能在這兩個條件中的一個被提出:

  1. 東西在BackEndUtils.OverallLoader()體內引發異常。
  2. 無論出於何種原因,Session["Co_ID"]爲空,並且在null上調用ToString()失敗。

使用異常提供的堆棧跟蹤來確定哪個是正確的。如果它是#1,我們將不得不看到該方法的來源,以便進一步解決問題。如果#2,您可能需要做在你的周圍代碼行一些手動校正(你可能想這樣做,反正):

object id = Session["Co_ID"]; 
if (id == null) 
{ 
    id = Session["Co_ID"] = LoadCoIdFromSomewhere(); 
} 

string Teststr = id.ToString(); 
+0

希望能爲downvote的解釋... – 2010-04-05 08:48:32

0

該錯誤可能是從你的BackEndUtils.OverallLoader到來。

至於會話變量 - 如果有人來到這個頁面沒有登錄,它不會被設置。會話可能也已超時,"Co_ID"不再設置。

1

你也許應該看到錯誤。錯誤說.ToString()不適用於對象,而且,您不必在此處寫入.ToString()。它將沒有它的工作,如圖

protected void Page_Load(object sender, EventArgs e) 
{ 
    BackEndUtils.OverallLoader(); 

    string Teststr = Session["Co_ID"].ToString(); 
} 
相關問題