【问题标题】:"Request is not available in this context" on Nested User Control嵌套用户控件上的“请求在此上下文中不可用”
【发布时间】:2011-03-21 23:50:17
【问题描述】:

我有三个对象:

  • 一个页面包含
  • 一个用户控件 (A),其中包含
  • 另一个用户控件 (B)

场景是用户控件A中的一个事件被调用,Request对象仍然可以在这里访问。但在那次调用期间,我尝试通过用户控件 B(用户控件 A 的子类)再次调用请求,它开始抛出“请求在此上下文中不可用”。

请求对象是否仅限于事件调用者?

示例代码:

    protected void MainGridPanel_RowClicked( object sender, EventArgs e )
    {
        int id = 1

        windowedModuleDetailList.ModuleDetailListPresenter.GetById( id );
        moduleDetailWindow.Show();
    }

moduleDetailWindow 在这种情况下是子控件 B。在 Show 方法中执行什么代码无关紧要,因为当它进入其范围时,我会在调试期间进行检查,并且 Request 对象已经无法访问。

编辑: 由于一些外部工具,使用 HttpContext.Current.Request 不是一个选项。我真的很想知道为什么 Request 对子控件不可见。

【问题讨论】:

    标签: asp.net httprequest httpexception


    【解决方案1】:

    您始终可以使用HttpContext.Current.Request 在当前 Http 上下文中调用 Request 对象。如果您使用此语法,请发布您的代码,以便我们查看并提出解决方案。

    【讨论】:

    • 我添加了一些代码,但我没有使用 HttpContext.Current.Request 因为一些第三方工具(我假设)使用 Request 是导致其他一些错误的原因。
    • 不确定“HttpContext.Current.Request 不是一个选项”是什么意思,因为它是处理 Request 对象的通用方法。您是否尝试过它以查看它是否解决了问题?还是第三方控件内部出现错误?
    • HttpContext.Current.Request 绝对有效。但我正在使用的一些第三方控件似乎在内部调用本地请求对象。
    • 只要他们不是导致错误的人,那么就没有什么可担心的。如果当前上下文可用,则本地 Request 对象与 HttpContext.Current.Request 相同。
    猜你喜欢
    • 1970-01-01
    • 2012-02-06
    • 2012-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多