Мне удалось установить мастер-страницу программно в Page_PreInit, например:
Page.MasterPageFile = "Site.Master";
Поскольку я не могу прочитать переменную сеанса, просто установите и измените каждую загрузку страницы до или во время этой фазы, код, подобный следующему, не работал для установки другой мастер-страницы в соответствии с переменной сеанса, которая основана на строке запроса URL :
if (Session["PageLayout"] != null) {
if (Session["PageLayout"].ToString() == "1") {
Page.MasterPageFile = "FullWidth.Master";
} else if (Session["PageLayout"].ToString() == "2") {
Page.MasterPageFile = "SideBar.Master";
} else {
Page.MasterPageFile = "Site.Master";
}
}
Хотите знать, как установить мастер страницы в ASP.NET C # на основе сеанса или строки запроса, переданной при загрузке страницы!
Обновление: Я пытался использовать решение в этот вопрос
но проблема в том, что в другом вопросе сеанс генерируется при входе в систему и используется на другой странице, в то время как в моем случае значение сеанса доступно только после посещения страницы и основано на URL-адресе запроса / идентификаторе страницы или, может быть, я не смог ' реализовать его так же.