Request.Querystring 为空
这很奇怪……我正在寻找需要调查的领域以及实际的解决方案,但这就是问题所在: 在我的 asp.net webform 页面中,我正在测试一个查询字符串,然后应用一些逻辑,但是,查询字符串似乎已从 Url 中删除。 如果我通过这个
..blah.aspx?blah=123
,那么我可以在 Request.RawUrl 中看到查询字符串,没有问题,但是当我传递正确的查询字符串时,
..blah.aspx?Id=123
查询字符串为空。 IIS 上没有站点或应用程序级别的请求过滤。还有哪里可以剥夺这个?两个小时的挠头和计数......
更新:
没有重定向,逻辑在 blah.aspx 预初始化事件中:
protected override void OnPreInit(EventArgs e)
{
if (!string.IsNullOrEmpty(RequestLEID) || !string.IsNullOrEmpty(RequestLEExternalReference))
DisableNavigationContextCheck = true;
base.OnPreInit(e);
}
打破这个事件,我正在立即窗口中测试 Request.RawUrl 属性
Strange one this..I'm looking for areas to investigate as much as an actual solution, but this is the issue:
In my asp.net webform page I am testing for a querystring which then applies some logic, however, the querystring appears to be stripped from the Url.
If I pass this
..blah.aspx?blah=123
then I can see the querystring in the Request.RawUrl no problem, but when I pass my proper querystring
..blah.aspx?Id=123
the querystring is empty. There is no request filtering on IIS either at the site or application level. Where else might this be stripped? Two hours of head scratching and counting....
Update:
There is no redirect, the logic is in the blah.aspx Pre Init event:
protected override void OnPreInit(EventArgs e)
{
if (!string.IsNullOrEmpty(RequestLEID) || !string.IsNullOrEmpty(RequestLEExternalReference))
DisableNavigationContextCheck = true;
base.OnPreInit(e);
}
Breaking on this event, I am testing the Request.RawUrl property in the immediate window
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您在解决方案中使用共享点(例如共享点控件),则 ID 是保留关键字。
If you're using sharepoint (eg. a sharepoint control) with your solution, then ID is a reserved keyword.
可恶的。在我们代码的其他地方,我们有一个导航模块。已更新为使用 RedirectPermanent,在 url 具有重复查询字符串模式(注意,不是参数本身)的情况下,不会使用 Request 对象发送查询字符串。
RedirectPermanent 是 ASP.NET 4.0 中的一个新方法,当然不应该在这里使用。
Nasty. Elsewhere in our code we have a navigation module. This had been updated to use RedirectPermanent which in the case of a url with a repeated querystring pattern (note, not the parameter itself) does not send the querystring with the Request object.
RedirectPermanent is a new method in asp.net 4.0 and certainly not something that we should be using here.
您是否从请求中提取值?
are you pulling the value(s) out of the request?