Как использовать главную страницу сайта со страницы _layout SharePoint?

Я хочу использовать файл masterpage (файл сайта, если это имеет смысл) в моем файле hive / template / layouts / TelephoneBookList / test.aspx SharePoint 12. Однако всякий раз, когда я добавляю MasterPageFile = "~ / _layouts / simple.master" или что-то подобное на мою страницу test.aspx, я получаю страницу с ошибкой sharepoint и следующее в файле журнала:

01/12/2009 10: 56: 26.95 w3wp.exe (0x1064) 0x1280 Топология Windows SharePoint Services 0 Критически недопустимый URL: http: // localhost < / а>. Вам также может потребоваться обновить любые альтернативные сопоставления доступа, относящиеся к http://mcdevsp. Справка по этой ошибке: http://go.microsoft.com/fwlink/?LinkId=114854

01/12/2009 10: 56: 27.09 w3wp.exe (0x1064) 0x1280 Windows SharePoint Services General 8dzz Тип исключения с высоким уровнем: System.Web.HttpException Сообщение об исключении: файл '/_layouts/TelephonebookList/~masterurl/default.master' выполняет не существует.

01/12/2009 10: 56: 27.23 w3wp.exe (0x1064) 0x1280 Топология Windows SharePoint Services 0 Критически недопустимый URL: http: // localhost < / а>. Вам также может потребоваться обновить любые альтернативные сопоставления доступа, относящиеся к http://mcdevsp. Справка по этой ошибке: http://go.microsoft.com/fwlink/?LinkId=114854

01/12/2009 10: 56: 27.70 w3wp.exe (0x1064) 0x1280 Windows SharePoint Services General 8dzw Medium spHttpHandler: GetHash запущен

01/12/2009 10: 56: 27.70 w3wp.exe (0x1064) 0x1280 Windows SharePoint Services General 8dzx Medium spHttpHandler: GetHash завершен

Без атрибутов MasterPageFile он работает отлично, однако у него нет глобального внешнего вида веб-сайта.

Большое спасибо.


person Community    schedule 12.01.2009    source источник
comment
Какой класс вы используете для test.aspx?   -  person Øyvind Skaar    schedule 12.01.2009
comment
Класс, хм? это просто страница, которая начинается с: ‹% @ Page Language = C # MasterPageFile = ~ / _layouts / simple.master Inherits = .. мой собственный код ..%› ‹% @ Register Tagprefix = SharePoint Namespace = Microsoft.SharePoint.WebControls Assembly = ..% ›‹! DOCTYPE html .. моя каст. код находится в DLL в GAC   -  person    schedule 12.01.2009


Ответы (2)


Попробуй это:

Оставьте объявление MasterPageFile по умолчанию (~ / _layouts / simple.master) и переопределите OnPreInit в своем пользовательском коде.

protected override void OnPreInit(EventArgs e)
{
    base.OnPreInit(e);

    this.MasterPageFile = SPContext.Current.Web.MasterUrl;
}
person SchaeferFFM    schedule 12.01.2009

SharePoint требует, чтобы страницы _layouts были объявлены с помощью ~ / _layouts / application.master. Затем метод OnPreInit можно использовать для изменения мастера во время выполнения.

HttpModule можно использовать для изменения мастера на всех страницах приложения: Как настроить мастер-файл приложения SharePoint

person dahlbyk    schedule 12.01.2009