zoukankan      html  css  js  c++  java
  • 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!欢迎交流!
  • 相关阅读:
    Oracle中TO_DATE格式
    实现带查询功能的Combox控件
    Combox和DropDownList控件的区别
    C# 获取字符串中的数字
    C# try catch finally 执行
    树形DP codevs 1814 最长链
    codevs 2822 爱在心中
    匈牙利算法 cojs.tk 搭配飞行员
    匈牙利算法 codevs 2776 寻找代表元
    2016-6-19 动态规划,贪心算法练习
  • 原文地址:https://www.cnblogs.com/mahaisong/p/2032500.html
Copyright © 2011-2022 走看看