为什么我收到此错误:
对象引用未设置为 对象的实例。
当我把这段代码放在我的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"]);
当我按下那个按钮时,这个代码在页面加载(POSTBACK)+ IN Button_Click工作正常并显示23(我的Co_ID)
但是当我在浏览器中运行我的页面时(第一次),页面加载中的这段代码显示为null。
为什么?
非常感谢
答案 0 :(得分:1)
可能“Co_ID”会话参数不存在。检查之前:
if (Session["Co_ID"] != null)
{
Teststr = Session["Co_ID"].ToString();
}
答案 1 :(得分:1)
你可以尝试:
Teststr = Convert.ToString(Session["Co_ID"]);
将处理null
s;还要检查:您是否已为该页面禁用会话状态?
<%@ Page language="c#" ... EnableSessionState="false" %>
(虽然在这种情况下我或许会想到一个更明显的错误)
答案 2 :(得分:1)
您应该看到错误。错误说.ToString()
不适用于对象,而且您不需要在此处编写.ToString()
。它将在没有它的情况下工作,如下所示
protected void Page_Load(object sender, EventArgs e)
{
BackEndUtils.OverallLoader();
string Teststr = Session["Co_ID"].ToString();
}
答案 3 :(得分:0)
可以在以下两个条件之一中引发异常:
BackEndUtils.OverallLoader()
正文中的某些内容引发了异常。Session["Co_ID"]
为空,并且在null上调用ToString()
失败。使用异常提供的堆栈跟踪来确定哪一个是正确的。如果它是#1,我们将不得不看到该方法的来源进一步解决问题。如果是#2,您可能需要在代码中围绕该行进行一些手动修正(无论如何您可能想要这样做):
object id = Session["Co_ID"];
if (id == null)
{
id = Session["Co_ID"] = LoadCoIdFromSomewhere();
}
string Teststr = id.ToString();
答案 4 :(得分:0)
错误可能来自您的BackEndUtils.OverallLoader
。
至于会话变量 - 如果有人来到此页而没有登录,则不会设置它。会话可能也已超时,"Co_ID"
不再设置。