一个站点中的ASP.NET多个主题

Sev*_*Sev 2 asp.net themes

我有一个App_Themes目录,还有一个ASP.NET网站的母版页.

我可以根据母版页使用2个不同的主题吗?

Fil*_*erg 6

MSDN有一篇关于ASP.NET母版页和主题的文章

您无法直接将ASP.NET主题应用于母版页.如果将主题属性添加到@ Master指令,该页面将在运行时引发错误.

但是,在这些情况下,主题应用于母版页:

  • 如果在内容页面中定义了主题.母版页在内容页面的上下文中被解析,因此内容页面的主题也应用于母版页.

  • 如果整个站点配置为通过在页面元素(ASP.NET设置架构)元素中包含主题定义来使用主题.

除了上述内容,您还可以看到有关主题和皮肤的部分.您可以通过编程方式更改主题

来自MSDN的示例

protected void Page_PreInit(object sender, EventArgs e)
{
    switch (Request.QueryString["theme"])
    {
        case "Blue":
            Page.Theme = "BlueTheme";
            break;
        case "Pink":
            Page.Theme = "PinkTheme";
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

但你不能同时使用两个主题,这没有任何意义.但是,您可以根据使用的母版页更改主题.

要在评论中回答您的问题,是的,您可以为不同的子文件夹设置不同的主题.这是来自MSDN:

Web.config文件中的主题设置适用于该应用程序中的所有ASP.NET网页.Web.config文件中的主题设置遵循常规配置层次结构约定.例如,要将主题仅应用于页面的子集,可以将页面放在具有自己的Web.config文件的文件夹中,或者在根Web.config文件中创建一个元素以指定文件夹.有关详细信息,请参阅配置特定文件和子目录.