微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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"] 就可以了

 

 

总结:良好的代码习惯平时看来可能没什么问题,但是一旦出现问题,很难发现(写给自己);另一方面是自己基础不牢,记录一下,长个记性

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐