我有一个令人抓狂的问题(不是全部吗?)。
我支持Umbraco 4.9.0站点,该站点遇到一个问题,即Request上的QueryString属性始终为null,但只是第一次加载页面。例如,
www.site.com/download.aspx?id=d99fe4df-28d9-4565-b444-b42499fcefd3
在代码隐藏中,在Page_Load方法上,我试图获取id:
var id = Request.QueryString["id"];
除了第一次加载页面外,这个工作正常。例如,我第一次点击上面的URL时,id为null。如果我再次立即点击URL,则将id设置为您期望的值。
此外,如果我通过Visual Studio停止并重新启动Web应用程序,则id变量将继续按预期工作。但是,如果我只修改代码库(例如下面的代码库),它将在第一次时再次传递一个未填充的查询字符串,并在任何时间之后工作。
var test = "my modification test";
var id = Request.QueryString["id"];
我还注意到Request.UrlReferrer为null,但Request.Url是www.site.com/download.aspx。
非常感谢任何帮助!
答案 0 :(得分:4)
而不是
var id = Request.QueryString["id"];
尝试
var id = Request["id"];
它做了什么?它将尝试按照的顺序从请求对象中找到此请求变量
你有可能从“FORM”帖子事件中得到这个变量...所以它将在Request.Form [“id”] ....而不是在查询字符串中。