代码在IE和firefox上运行的效果不一样,求帮忙
string cityname = HttpContext.Current.Request.Cookies["city"].Value;
在IE运行的时候是正常的
但是在firefox上面
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
源错误:
行 35: {
行 36: BLL.news bnew = new BLL.news ();
行 37: string cityname = HttpContext.Current.Request.Cookies["city"].Value;
怎么一回事啊~ --------------------编程问答-------------------- 不会吧? --------------------编程问答-------------------- 是啊~我也检查了firefox,没有禁用Cookies, --------------------编程问答-------------------- 你确认cookie存在吗?
IE和firefox存的cookie位置是不同的。
--------------------编程问答-------------------- 你在IE里面存的Cookie,火狐里面肯定是取不到的。
并且点出Cookie的Value时候一般都需要Try Catch的,Try Catch 是个很好的习惯
--------------------编程问答-------------------- if(.Request.Cookies["city"]!=null)
BLL.news bnew = new BLL.news ();
string cityname = string.Empty();
try{
cityname = HttpContext.Current.Request.Cookies["city"].Value;
}catch(Exception ex){
Response.Write("<script>alert('对不起,你还没有登陆!')</script>");
Response.Redirect("login.aspx");
}
{
//dosomethings
}
可以避免空引用的错误 --------------------编程问答-------------------- 滥用try..catch是一种恶习。应该明确地判断null。 --------------------编程问答-------------------- 仔细检查你的 city 是什么时候写道客户端的,又是什么时候开始读取的。另外在ie上把历史文件等删掉,也许能够更准确地测试出你的程序的bug。 --------------------编程问答--------------------
Good!
补充:.NET技术 , ASP.NET