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

时间:2011-02-09 22:05:56

标签: asp.net themes

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

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

1 个答案:

答案 0 :(得分:6)

MSDN有一篇关于ASP.NET Master Pages And Themes

的文章
  

您无法直接应用ASP.NET   主页到主页面。如果你添加一个   @ Master的主题属性   指令,页面会引发一个   运行时出错。

     

但是,主题应用于master   这些情况下的网页:

     
      
  • 如果内容中定义了主题   页。母版页在解决   内容页面的上下文,所以   内容页面的主题适用于   主页也是。

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

  •   

除上述内容外,您还可以看到有关Themes and Skins的部分。你可以change theme programmatically

来自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;
    }
}

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

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

  

Web.config文件中的主题设置   适用于所有ASP.NET网页   那个申请。主题设置   Web.config文件遵循正常   配置层次结构约定   例如,仅应用主题   一个页面的子集,你可以把   用自己的文件夹中的页面   Web.config文件或创建一个   根Web.config文件中的元素   指定一个文件夹。有关详情,请参阅   配置特定文件和   子目录。