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

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很容易就判断出来了! 同样。

本人声明: 个人主页:沐海(http://www.cnblogs.com/mahaisong) 以上文章都是经过本人设计实践和阅读其他文档得出。如果需要探讨或指教可以留言或加我QQ!欢迎交流!
原文地址:https://www.cnblogs.com/mahaisong/p/2032500.html