Getting the Page and EPiServer CurrentPage object from HttpContext
Just a little quick tip when needing to use either the Page object or the EPiServer CurrentPage object from a class file. HttpContext.Current will give you access to the current request, what we can do is cast HttpContext.Current.Handler (since Page implements the IHttpHandler interface) to System.Web.UI.Page.
var page = HttpContext.Current.Handler as System.Web.UI.Page; if (page != null) { // do something with the page object }
We can take this a step further and cast it to EPiServer.PageBase which gives us access to the CurrentPage object.
private static PageData CurrentPage { get { var page = HttpContext.Current.Handler as EPiServer.PageBase; if (page == null) { return null; } return page.CurrentPage; } }