1

为什么我得到这个错误:

你调用的对象是空的。

当我把这段代码放在我的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"]);

当我按下该按钮时,页面 Load(POSTBACK) + IN Button_Click 中的此代码完美运行并显示 23(我的 Co_ID)

但是当我在浏览器中运行我的页面(第一次)时,页面加载中的这个代码显示我为空。

为什么?

多谢

4

5 回答 5

1

可能“Co_ID”会话参数不存在。之前检查:

if (Session["Co_ID"] != null) 
 {
   Teststr = Session["Co_ID"].ToString();
 }
于 2010-04-05T08:23:32.410 回答
1

你可以试试:

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

它将处理nulls;还要检查:您是否为页面禁用了会话状态?

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

(尽管在这种情况下我可能会预料到一个更明显的错误)

于 2010-04-05T08:27:06.200 回答
1

您也许应该看到错误。错误说.ToString()不适用于对象,此外,您不必.ToString()在这里写。没有它也可以工作,如下所示

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

    string Teststr = Session["Co_ID"].ToString();
}
于 2011-12-27T16:17:43.760 回答
0

可以在以下两种情况之一中引发异常:

  1. 正文中的某些内容BackEndUtils.OverallLoader()引发了异常。
  2. 无论出于何种原因Session["Co_ID"]为 null,并且在 null 上调用ToString()失败。

使用异常提供的堆栈跟踪来确定哪个是正确的。如果它是#1,我们将不得不查看该方法的来源以进行进一步的故障排除。如果#2,您可能需要在代码中围绕该行进行一些手动更正(无论如何您可能都想这样做):

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

string Teststr = id.ToString();
于 2010-04-05T08:23:54.330 回答
0

错误可能来自您的BackEndUtils.OverallLoader.

至于会话变量——如果有人没有登录就来到这个页面,它不会被设置。会话也可能已超时并且"Co_ID"不再设置。

于 2010-04-05T08:26:18.893 回答