我有一个令人抓狂的问题(不是全部吗?)。
我支持一个 Umbraco 4.9.0 站点,该站点遇到一个问题,即请求中的 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 是空的,但是 Request.Url 是 www.site.com/download.aspx。
非常感谢任何帮助!
最佳答案
代替
var id = Request.QueryString["id"];
尝试
var id = Request["id"];
它有什么作用?它会尝试从请求对象中找到这个请求变量,顺序是
- 查询字符串
- 表格
- cookies
- 客户端证书
- 服务器变量
您可能从“FORM ”后事件中获取此变量...因此它将在 Request.Form["id"] .... 而不是在查询字符串中。
关于c# - Umbraco Request.QueryString 如果是第一次加载页面则为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18196533/