Как определить, является ли текущая страница страницей EPiServer или нет - PullRequest
1 голос
/ 28 апреля 2011

Мне нужно знать, является ли текущая страница страницей EpiServer или нет. Мне нужно знать, является ли текущая страница стартовой, я использую следующую строку кода.

if(PageReference.StartPage.ID == CurrentPage.PageLink.ID)

Это прекрасно работает на всех EPiServer, но когда я нахожусь на странице, отличной от EPiServer, то CurrentPage возвращает значения для StarPage. Это означает, что все мои страницы, не относящиеся к EPiServer, обрабатываются как StartPage (просто в моем заявлении if, конечно).

Одно решение, о котором я подумал, - это сначала проверить, является ли страница страницей EPiServer? Но не знаю, как это сделать. Могу ли я получить класс для страницы или как этого добиться?

Есть идеи или предложения?

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 28 апреля 2011

Ваши страницы, не относящиеся к EPiServer, являются просто пользовательскими страницами aspx? В этом случае у вас есть проблемы, вы можете проверить, наследует ли текущая страница страницу EPiServer, проверив тип страницы. Я считаю, что все страницы EPiServer наследуются от PageBase.

if (Page is EPiServer.PageBase) {...}
0 голосов
/ 31 августа 2011

Существует фантастическая библиотека полезного кода, облегчающая работу с EPiServer.

Загрузите библиотеку расширений EPiCode и добавьте ее в свой проект.

У него есть метод расширения IsEPiServerPage, который можно использовать. Источник метода:

    public static bool IsEPiServerPage(this PageData page)
    {
        return page != null && page.PageLink != null && page.PageLink.ID > 0;
    }
0 голосов
/ 28 апреля 2011

Это не очень хорошая вещь, которую вы получили, но если вы не хотите подключать свои не EPi-страницы к реальному экземпляру страницы отдельного типа страницы, я думаю, вам лучше всего проверить Request.Url или имя файла обрабатываемого ASPX-файла.

...