Доступ к текущему экземпляру страницы из статического класса

Основной вопрос - можно ли получить доступ к текущему Page из статического класса в ASP.NET?

Я не думаю, что google не дает никаких результатов.

Ответ 1

Технически вы можете просто получить текущий IHttpHandler для запроса. Поскольку Page реализует это, вы можете проверить, не является ли он одним.

var page = HttpContext.Current.CurrentHandler as Page;

if(page != null){
    // Do something with page
}

Ответ 2

Вы можете использовать HttpContext.CurrentHandler, чтобы вернуть текущий HttpHandler для запроса. Класс страницы - это просто сложный тип HttpHandler.

Чтобы получить доступ к чему-либо, связанному со свойствами страницы, вам нужно будет нанести результат на тип Page.

Честно говоря, я бы взял подход Джеффа, если это возможно, потому что, введя ссылку на страницу в вызове метода, ваш метод гораздо более проверен (не говоря уже о надежном, так как вы можете напрямую использовать страницу). Опираясь на что-либо, связанное с HttpContext, делает ваш код неустойчивым. Возможно, вы находитесь в ситуации, когда вы не можете создать такой метод, но я бы предпочел это сделать.

Ответ 3

Самый простой способ - передать текущую страницу в качестве параметра методу, который вы вызываете в статическом классе.