当前位置:编程学习 > C#/ASP.NET >>

代码在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 是个很好的习惯

            
            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");
            }
             
--------------------编程问答-------------------- if(.Request.Cookies["city"]!=null)
{
   //dosomethings
}
可以避免空引用的错误 --------------------编程问答-------------------- 滥用try..catch是一种恶习。应该明确地判断null。 --------------------编程问答-------------------- 仔细检查你的 city 是什么时候写道客户端的,又是什么时候开始读取的。另外在ie上把历史文件等删掉,也许能够更准确地测试出你的程序的bug。 --------------------编程问答--------------------
引用 6 楼 sp1234 的回复:
滥用try..catch是一种恶习。应该明确地判断null。

Good!
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,