没有在asp.net中设置对象引用

时间:2013-08-11 18:35:34

标签: asp.net nullreferenceexception

if (Session["admin_uname"].ToString() == "")
{
    Response.Redirect("login.aspx");
}
else
{
    string userid = Session["admin_uname"].ToString(); 

}

我已经为会话写了上面的代码...... 但问题是如果有任何会话变量它正常工作

如果没有会话,则不会重定向到登录页面并发出错误,如

对象参考未设置。

6 个答案:

答案 0 :(得分:2)

如果没有会话退出,那么你将无法比较任何内容。所以检查它的空或不。这就是你检查会话的方式。

   if (Session["admin_uname"] == null)
    {
        Response.Redirect("login.aspx");
    }
    else
    {
        string userid = Session["admin_uname"].ToString(); 
    }

答案 1 :(得分:0)

当您在该null上调用ToString()时,您将获得异常。因此,也请检查Null值。你可以试试这个: -

if (Session["admin_uname"].ToString() == "" || Session["admin_uname"].ToString() == Null)

答案 2 :(得分:0)

在引用对象之前检查是否为null,如

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

// do something

答案 3 :(得分:0)

你可以用这个:

if (String.IsNullOrEmpty(Session["admin_uname"].ToString()))
{
    Response.Redirect("login.aspx");
}
else
{
    string userid = Session["admin_uname"].ToString(); 
} 

答案 4 :(得分:0)

我会这样做:

if (Session["admin_uname"] != null || Session["admin_uname"].ToString() == "")
    Response.Redirect("login.aspx");

string userid = Session["admin_uname"].ToString(); 

答案 5 :(得分:0)

还有一个条目:

string userid = Session["admin_uname"] ?? "";
if (string.IsNullOrEmpty(userid))
{
    Response.Redirect("login.aspx");
}