从静态类访问Page的当前实例

max*_*axp 14 asp.net static

基本问题 - 是否可以Page从ASP.NET中的静态类访问当前?

我在想不,因为谷歌没有结果.

Jos*_*osh 28

从技术上讲,你可以为请求获取当前的IHttpHandler.由于Page实现了那个,然后你可以检查它是否是一个.

var page = HttpContext.Current.CurrentHandler as Page;

if(page != null){
    // Do something with page
}
Run Code Online (Sandbox Code Playgroud)


wom*_*omp 7

您可以使用HttpContext.CurrentHandler返回请求的当前HttpHandler.Page类只是一种复杂类型的HttpHandler.

但是,为了访问与页面属性相关的任何内容,您需要将结果转换为类型Page.

老实说,如果可能的话,我会采用Jeff的方法,因为通过在方法调用中注入页面引用,您的方法更加可测试(更不用说可靠,因为您可以直接使用Page).依赖与HttpContext有关的任何事情往往会使你的代码不可测试.也许你处在一种你无法设计这种方法的情况,但这将是我喜欢的方式.