C#.NET 两个页面复杂的变量传递问题(a.aspx通过request接收变量c用sesssion传给b.aspx;b.aspx根据c处理数据库中的信息形成图片(有热区的
a.aspx.cs中代码:protected void Page_Load(object sender, EventArgs e)
{
string dt = Request["dt"];//从页面接收的信息
if (dt == "" || dt == null)
{
dt = DateTime.Now.ToString("yyyy.MM.dd");
}
Session.Add("时间", dt);//通过session传给b.aspx
int[,] kkk = (int[,])Session["热区"];//从b.aspx传回的存储热区矩形的数组
b.aspx.cs中的代码:
protected void Page_Load(object sender, EventArgs e)
{
dt = Session["时间"].ToString();//从a.aspx接收的变量
。
。
。//数据库处理及画图
int[,]kkk=返回二维数组的函数();
Session["热区"] = kkk;
}
现在遇到的问题:在访问a.aspx时提示kkk数组“未将引用设置到对象实例”。如下:
应用程序中的服务器错误。
--------------------------------------------------------------------------
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
源错误:
行 27: Session.Add("时间", dt);
行 28: int[,] kkk = (int[,])Session["热区"];
行 29: int n1 = kkk.GetLength(0);
行 30: string[] tem = new string[n1];
行 31: string kill = "兰色内容可替换";
源文件: c:\Inetpub\wwwroot\HP\img.aspx.cs 行: 29
高手帮忙解决下,在线关注。。。。。。。。。。。。。。。
--------------------编程问答-------------------- up --------------------编程问答-------------------- 用cookies或XML把变量记录在客户端,要用时随时获取不就完了 --------------------编程问答-------------------- 是不是Session过期了,结果你的数组没有实例化?这样你取Length是会报错的 --------------------编程问答-------------------- 就提示出错来看,应该是(int[,])Session["热区"]返回的是NULL,楼主Debug下吧 --------------------编程问答-------------------- curd0468()
你的意思是b.aspx中我要返回的数组写入客户端,a.aspx再从客户端读出?
用cookies可能用户浏览器会禁止,用XML 具体怎么做麻烦告诉下,我对XML 不熟悉,我 也刚学习。NET(C#)...... --------------------编程问答-------------------- 我感觉有的时候我运行了b.aspx再访问a.aspx就可以正确显示了
是不是访问页面的顺序有问题 --------------------编程问答-------------------- 我实验过很多次了是kkk数组null你认为我的页面访问顺序有没有问题啊?
现在的顺序是先a.aspx然后形成变量供b.aspx使用,但是没有直接转b.aspx的语句,之后在a.aspx中就直接获得int[,]kkk=session[“热区”]这里是不是有冲突? --------------------编程问答-------------------- 也想知道、 --------------------编程问答-------------------- null异常,int[,])Session[ "热区 "]是null
在b.aspx.cs中给Session[ "热区 "]赋过值后,在a.aspx.cs才能正确取到值,
像这种获取到的对象,最好是先判断是否NULL后再使用
补充:.NET技术 , C#