2010-04-05 6 views
1

pourquoi j'eu cette erreur:Je ne peux pas utiliser session Dans Page_Load et j'ai eu erreur ci-dessous

Référence d'objet non définie à une instance d'un objet.

quand je mets ce code dans mon page_load .:

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

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

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

cette session est faite lorsque les connexions utilisateur sur mon site web et cette session des travaux dans d'autres domaines ...

Merci pour votre attention

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

merci pour vos réponses

i supprimés BackEndUtils.OverallLoader(); mais l'erreur existe toujours

i essayé Teststr = Convert.ToString(Session["Co_ID"]); et l'erreur a disparu - mais je ne sais pas pourquoi cette session est nulle

dans d'autres domaines que la session fonctionne parfaitement = comme un bouton sous cette forme

quelle est la question?

mon balisage de la page web est comme ceci:

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

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

i mettre ce code dans un bouton comme celui-ci:

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

quand j'appuyez sur ce bouton ce code dans la page Load (postback) + IN Button_Click fonctionne parfaitement et me montre 23 (mon co_id)

Mais quand je cours ma page dans le navigateur (première fois) ce code dans le chargement de la page me montre null.

pourquoi?

merci beaucoup

+0

Merci pour votre attention « cliquez sur la coche à côté » -> quel est le nom qui marque – MoonLight

+0

je l'ai trouvé - soryy – MoonLight

Répondre

1

Vous pouvez essayer:

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

qui se chargera null s; vérifiez aussi: avez-vous désactivé l'état de la session pour la page?

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

(bien que j'aurais peut-être attendre une erreur plus évidente dans ce cas)

+0

vraiment merci pour votre attention – MoonLight

+0

mais pourquoi Session ["Co_ID"] est nulle? ne devrait pas. dans d'autres domaines cela fonctionne parfaitement – MoonLight

+0

@LostLord - sont-ils connectés? Est-ce la même instance d'application ASP.NET? c'est le recyclage d'applications? Beaucoup de possibilités ... –

1

probablement paramètre de session "co_id" n'existe pas. Vérifiez avant:

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

L'exception pourrait être soulevée dans l'une de ces deux conditions:

  1. Quelque chose dans le corps de BackEndUtils.OverallLoader() soulève l'exception.
  2. Pour une raison quelconque, Session["Co_ID"] est null et l'appel de ToString() sur null échoue.

Utilisez la trace de pile fournie par l'exception pour déterminer laquelle est correcte.Si c'est # 1, nous devrons voir la source de cette méthode pour faire d'autres problèmes. Si # 2, vous devrez peut-être faire une correction manuelle autour de cette ligne dans votre code (vous pouvez le faire de toute façon):

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

string Teststr = id.ToString(); 
+0

Espérant une explication de la downvote ... –

0

L'erreur peut venir de votre BackEndUtils.OverallLoader. En ce qui concerne la variable de session - si quelqu'un vient à cette page sans se connectant, il ne sera pas défini. La session peut également avoir expiré et "Co_ID" n'est plus défini.

1

Vous devriez peut-être voir l'erreur. Erreur dit .ToString() ne fonctionne pas avec des objets et de plus, vous n'avez pas besoin d'écrire .ToString() ici. Il fonctionnera sans comme indiqué ci-dessous

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

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