给定一个System.Web.UI.Page的实例,有没有办法从它获取当前的HttpContext?有一个受保护的Context属性,但我希望公开曝光。
答案 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!");