Request.Querystring 为空

发布于 2024-12-20 18:23:03 字数 679 浏览 0 评论 0原文

这很奇怪……我正在寻找需要调查的领域以及实际的解决方案,但这就是问题所在: 在我的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

命比纸薄 2024-12-27 18:23:03

如果您在解决方案中使用共享点(例如共享点控件),则 ID 是保留关键字。

If you're using sharepoint (eg. a sharepoint control) with your solution, then ID is a reserved keyword.

妥活 2024-12-27 18:23:03

可恶的。在我们代码的其他地方,我们有一个导航模块。已更新为使用 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.

南渊 2024-12-27 18:23:03

您是否从请求中提取值?

var RequestLEExternalReference = Request.QueryString["LEExternalReference"];

are you pulling the value(s) out of the request?

var RequestLEExternalReference = Request.QueryString["LEExternalReference"];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文