我在1.aspx页面写了个超链后面链接地址为2.aspx?id=....
我在2.aspx里写了个判断 if (Request.QueryString["id"].ToString()!=null){方法体}或者写上string.IsNullOrEmpty(Request.QueryString["id"].ToString()) 都报错
当我随意在2.aspx页面地址栏里去掉id=(后面的参数) 或者改成id=(数据库里没有的值)
第一个会报未将对象引用到实例,第二个提示 在位置 0 处没有任何行
少年,麻烦你看看清楚
Request.QueryString["id"] //这个返回的是String类型,以后别这样了好吗?
string.IsNullOrEmpty(Request.QueryString["id"])
if (Request.QueryString["id"]!=null){方法体}
string.IsNullOrEmpty(Request.QueryString["id"])
谢谢帅哥们。但是如果在浏览器地址栏里输入的参数大,他报错咋办?我上面图片里有错误信息。。
@colyn: Post提交即可
只要做好验证一般情况下不会报错,如果参数太多就是Post提交;
Get提交:if(Request.QueryString["id"]!=null && Request.QueryString["id"].ToString().Trim()!=""){}
Post提交:if(Request.Form["id"]!=null && Request.Form["id"].ToString().Trim()!=""){}
判断时还是建议使用string.IsNullOrEmpty(""),这样比较正规。。。
这也是一种方法:
string strId=Request.QueryString.Get("Id");//避免不存在指定的Url字符串参数时,报“未将对象引用设置到对象的实例”错误。
if (!string.IsNullOrEmpty(strId))
{
.......
}
找的就是你,啊哈