asp.net Request获取参数遇到的坑!!!
遇到的问题:
本地测试正常,线上出问题
下面两个请求:
1、/GuanWangBao/UserList.aspx?LeaguerID=0
2、/GuanWangBao/UserList.aspx
后端使用 Request.["LeaguerID"] 接收参数,前者接收到的是0,而后者接收到的是738(通过打印日志知道)
但是,本地测试的时候 这两个参数得到的值都是0(正常的)
花费了一上午的时间,才找出问题:
话说无巧不成书,也是个巧合导致的这个坑,但是归根到底还是代码习惯的问题!
原因是:
有个知识点不知道: Request从这几个集合取数据是有顺序的,从前到后
的顺序依次是 QueryString,Form,Cookies,最后是ServerVariables(这个是查资料才知道的)
使用Request获取参数的时候,刚好Cookie里面有一个和参数名一样的cookie叫LeaguerID,这样就导致,
请求 /GuanWangBao/UserList.aspx获取到的LeaguerID是cookie里的值
本地测试之所以是正常的,是因为本地开发域名里面没有写cookie,写cookie的域名是固定的(正式服域名)
所以,解决办法就是:把Request["LeaguerID"]换成Request.QueryString["LeaguerID"] 就可以了
总结:良好的代码习惯平时看来可能没什么问题,但是一旦出现问题,很难发现(写给自己);另一方面是自己基础不牢,记录一下,长个记性
本文来自博客园,作者:汪小让,转载请注明原文链接:https://www.cnblogs.com/wangxiaorang/p/14302885.html