日期:2014-05-19  浏览次数:20390 次

(100分)问一个高难度的问题,没实力的不要进。。。
帮我看看呀。。。我为什么    
string   st=Request.Params[ "ancestor_id "].ToString()
就有这样的错呀      
未将对象引用设置到对象的实例。  



------解决方案--------------------
改为:
if(Request.[ "ancestor_id "] != null)
{
string st=Request[ "ancestor_id "].ToString();
}

另外,Request的时候取的是客户端的name属性,不是id属性,这点一定要区分清楚
------解决方案--------------------
string st=null;

if(Request.Params[ "ancestor_id "]!=null)
{
st=Request.Params[ "ancestor_id "].ToString();
}

------解决方案--------------------
正解
C#里面必须指定数据变量
Request[ "ancestor_id "]当这个变量不存在时的值为NULL
仅当Request[ "ancestor_id "]不为空时才能用Request[ "ancestor_id "]取得其值
---------------
Request[ "ancestor_id "].ToString();
得到的变量是String类型的,NULL不属于String所以报错
.NET中使用Request取值当值可能不存在时必须用上面的IF判断不然就会出现上面的错误
-------------------------
.NET中典型报错:未将对象引用设置到对象的实例
是由于试图将一个不存在的变量(一般是NULL)付值给另一个变量
------解决方案--------------------
string st=Request.Params[ "ancestor_id "].ToString()未将对象引用设置到对象的实例
**********************************************
原因:如果Request.Params[ "ancestor_id "]的值为null,那么调用ToString()当然会排除空异常了,正确写法:

string st=Request.Params[ "ancestor_id "] as string;
if(st != null)
{
//对获取的字符串进行处理
}

接分!

------解决方案--------------------
这个问题应该不是什么高难度的问题

接受的参数应该要判断其是否为空,在实际应用中,如果这个参数的值要转换成整数,还要判断其是否能转换成功,是否越界等,简单地说,就是要做足够的检查以保证我们应用程序的强壮性
------解决方案--------------------
string st=Request.QueryString[ "ancestor_id "]
------解决方案--------------------

<a href= "zhuti.aspx?Fenglei_ID= <%=Request.Params[ "Fenglei_ID "].ToString()%> > </a>


string st=Request.QueryString[ "Fenglei_ID "]