Основной вопрос - является этим возможный получить доступ к току Page
от статического класса в ASP.NET?
Я думаю не, поскольку Google не поднимает результатов.
Технически вы можете просто получить текущий IHttpHandler для запроса. Поскольку Page реализует это, вы можете проверить, является ли он таковым.
var page = HttpContext.Current.CurrentHandler as Page;
if(page != null){
// Do something with page
}
Вы можете использовать HttpContext.CurrentHandler
, чтобы вернуть текущий HttpHandler для запроса. Класс Page - это просто сложный тип HttpHandler.
Чтобы получить доступ к чему-либо, связанному со свойствами Page, вам придется привести результат к типу Page
.
Честно говоря, я бы по возможности использовал подход Джеффа, потому что, внедряя ссылку на страницу в вызов метода, ваш метод становится гораздо более тестируемым (не говоря уже о надежности, поскольку вы можете использовать Page напрямую). Полагаясь на все, что связано с HttpContext, вы сделаете свой код нетестируемым. Возможно, вы находитесь в ситуации, когда вы не можете спроектировать метод таким образом, но я бы предпочел сделать это именно так.
Самый простой способ - передать текущую страницу в качестве параметра методу, который вы вызываете в статическом классе.