System.Web.UI.Page中的HttpContext?

时间:2012-02-06 21:12:01

标签: asp.net

给定一个System.Web.UI.Page的实例,有没有办法从它获取当前的HttpContext?有一个受保护的Context属性,但我希望公开曝光。

2 个答案:

答案 0 :(得分:3)

您可以使用

从任意位置访问当前上下文
HttpContext.Current

答案 1 :(得分:0)

您也可以通过RequestContext(它是公共财产)获得它。尽管它返回HttpContextBase而不是HttpContext,但这对于大多数应用程序来说应该没问题。

public static HttpContextBase GetHttpContext( this System.Web.UI.Page page )
{
    if( page == null ) throw new ArgumentNullException(nameof(page));
    return page.Request.RequestContext.HttpContext;
}

由于它是扩展方法,因此您只需要执行以下操作:

Page page = ... // Get `page` instance from somewhere.
page.GetHttpContext().Response.WriteLine("working!");