代码改变世界

ASP.NET 页面传递URL 指定的参数 不存在 时异常。怎么做判断

2011-04-29 10:39  沐海  阅读(1497)  评论(1编辑  收藏  举报

ASP.NET中,若要将一个URL参数值赋值给一个变量,都得先判断参数是否存在


  if (Request["Data"]!= null) { searchtext.Value = Request["Data"].ToString(); }

后来发现URL为:http://www.baidu.com

对应的DATA根本没有传递。

于是就利用 if (Request["Data"].tostring()!= null)来判断。异常依旧发生。

原理:这里的Data参数根本不存在。转换String当然异常。

所有接着  if (Request["Data"]!= null)

还有的是

http://www.baidu.com?Data=

这样的也是有异常的。它的值为一个空字符串,所以通过了Request["Data"].tostring()!= null的验证,

但将空字符串传给int.Parse方法,还是报错了,可见,光判断参数是否存在还是不够的,还必须得进一步判断是否有传值才行,最终代码改为:


复制内容到剪贴板  程序代码
int id = 0;
if (!string.IsNullOrEmpty(Request.QueryString["id"])) //String值类型。    非空。再转参。
    id = int.Parse(Request.QueryString["id"]);

原因是:

1.当参数不存在时,参数值为null,调用string.IsNullOrEmpty方法,null会自动转换为空字符串;所以该方法就为FALSE了。就不执行下面的INT转换了。

2.当参数存在但不传值时,参数值为空字符串,string.IsNullOrEmpty很容易就判断出来了! 同样。

记录生活、工作、学习点滴!
E-Mail:mahaisong@hotmail.com 欢迎大家讨论。
沐海博客园,我有一颗,卓越的心!