как применить тему на динамически главной странице?

#c# #asp.net

#c# #asp.net

Вопрос:

есть ли переопределение PreInit на главной странице? или возможно наследование PreInit в MasterPage?

Ответ №1:

Если у вас есть базовый класс страницы для всех ваших страниц, вы можете применить следующее:

 public partial class SiteMaster : System.Web.UI.MasterPage
{
    private string _theme = "Custom";
    public string Theme
    {
        get { return _theme; }
        set { _theme = value; }
    }
}

public class BasePage : System.Web.UI.Page
{
    protected void Page_PreInit(object  sender, EventArgs e)
    {
        var siteMaster = this.Master as SiteMaster;
        if (siteMaster != null amp;amp; !string.IsNullOrEmpty(siteMaster.Theme))
        {
            Theme = siteMaster.Theme;
        }
    }
}
  

Ответ №2:

Вы не можете напрямую применить ASP.NET тема для главной страницы. Если вы добавите атрибут theme к директиве @ Master, страница выдаст сообщение об ошибке при запуске.

Однако в этих обстоятельствах темы применяются к основным страницам:

Если тема определена на странице содержимого. Основные страницы разрешаются в контексте страниц содержимого, поэтому тема страницы содержимого применяется и к главной странице.