日期:2014-05-20  浏览次数:20346 次

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 ....