我现在要从一个页面往另一个页面传Session变量的值,出现如下问题
下面是登陆界面中
if(!Page.IsPostBack)
{
Session["Temp"]="aa";
}
传到另一个页面却出现如下错误现象!!!未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 35: if(!IsPostBack)
行 36: {
行 37: string a = Session["Temp"].ToString();
行 38: string AdminUserName=Session["LoginName"].ToString();
行 39: //string a=Session["UserTrueName"].ToString ();
这个是什么原因呢!!
下面是登陆界面中
if(!Page.IsPostBack)
{
Session["Temp"]="aa";
}
传到另一个页面却出现如下错误现象!!!未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 35: if(!IsPostBack)
行 36: {
行 37: string a = Session["Temp"].ToString();
行 38: string AdminUserName=Session["LoginName"].ToString();
行 39: //string a=Session["UserTrueName"].ToString ();
这个是什么原因呢!!
string AdminUserName=Session["LoginName"].ToString();
这一行出的错误吧?
确定也给Session["LoginName"]赋值了吗?
但是我要告诉你其他的在第一个登陆页面上都是有值的!!!
Session.Add("Temp"); //可以把这行加在Global.asax的SessionStart中
以后再用
Session["Temp"] = "aa";
可是报错“重载Add方法未获取“1”参数”是怎么回事啊!
可以
不添加Session变量。
直接使用Session["Temp"] = "aa";我想再问一下,两段代码都在page_load中吗?
你最好把两个页面的page_load中代码都粘出来,然后把打开第二个页面的代码也粘出来。从你现在粘出来的信息来看,是不应该有错的
<sessionState 小节中mode的值是否为mode="InProc",如果为Off,则不能取到session的数据的
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="20"
/>
因为你的第二个页面中
string a = Session["Temp"].ToString();
使用的是第一个页面创建的Session["Temp"],如果在Session["Temp"]不存在的情况下,你的这句话当然会出错。不存在不是Session["Temp"]=="";而是Session["Temp"]==null;
试试看加上一句
if(Session["Temp"]!=null)后效果如何