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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值