Cookies为什么总是
未将对象引用设置到对象的实例?
常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
源错误:
行 16: {
行 17:
行 18: if (Request.Cookies[ "name "].Value == " " || Request.Cookies[ "name "].Value == null)
行 19: {
行 20: Response.Redirect( "default.aspx ");
其中引起这现象不解啊+++++++++++++
我只要去除这个Cookies就正常!! Response.Cookies[ "SelectOrder "].Value = " ";
与这有什么关系??????
------解决方案--------------------当然咯,你的Cookies[ "SelectOrder "]在未定义的时候,怎么能读取呢
判断一下是否为null就行了,你即然定义了Cookies[ "SelectOrder "]就要不让他有空值的情况出现啊
------解决方案--------------------赋值:Response.Cookies( "name ").Value = "xxx "
判断是不是空
Dim cookie As HttpCookie, read As String
cookie = Request.Cookies( "name ")
If Not cookie Is Nothing Then
read = Request.Cookies( "name ").Value '有值再读
End If
------解决方案--------------------首先判断Request.Cookies[ "name "]是否为NULL.如果Request.Cookies[ "name "]是NULL的,那么自然就更不用去取Request.Cookies[ "name "].value了.因为在取Request.Cookies[ "name "]时就已经报NullReferenceException
这个和Response.Cookies[ "SelectOrder "].Value = " ";没有什么关系.也许是你业务逻辑的问题.
------解决方案--------------------if (Request.Cookies[ "name "].Value == " " || Request.Cookies[ "name "].Value == null)
///////////
先判断是否为null 然后再判断是否为 " "
即
if (Request.Cookies[ "name "].Value == null || Request.Cookies[ "name "].Value == " ")
------解决方案--------------------.NET为了提高安全性 不允许使用为NLL的参数,变量的 你的Cookies肯定没赋值的 检查下代码 是逻辑错误
为NLL 和为空即 " "不是一回事啊 为 " "其实是有值的 只不过是空值罢了
------解决方案--------------------楼上的同学正解
要先判断是否为null
/////错误的
if(Request.Cookies[ "name "].Value == " " .......
Cookies集合里面没有 "name "这个元素,你拿没有的元素和一个字符串比较肯定是不对咯
////正确的
if(Request.Cookies[ "name "]!=null ....