【发布时间】:2010-03-22 19:46:04
【问题描述】:
基本问题 - 是否可以从 ASP.NET 中的静态类访问当前的 Page?
我想不,因为谷歌没有结果。
【问题讨论】:
基本问题 - 是否可以从 ASP.NET 中的静态类访问当前的 Page?
我想不,因为谷歌没有结果。
【问题讨论】:
从技术上讲,您可以为请求获取当前的IHttpHandler。既然Page 实现了它,那么你可以检查它是否是一个。
var page = HttpContext.Current.CurrentHandler as Page;
if(page != null){
// Do something with page
}
【讨论】:
您可以使用HttpContext.CurrentHandler 为请求返回当前的HttpHandler。 Page 类只是 HttpHandler 的一种复杂类型。
为了访问与页面属性相关的任何内容,您需要将结果转换为类型Page。
老实说,如果可能的话,我会采用 Jeff 的方法,因为通过在方法调用中注入页面引用,您的方法更加可测试(更不用说可靠,因为您可以直接使用 Page)。依赖与 HttpContext 相关的任何事情都会使您的代码无法测试。也许您无法设计这样的方法,但这是我更喜欢的方式。
【讨论】:
最简单的方法是将当前页面作为参数传递给您在静态类中调用的方法。
【讨论】: