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

发布于 2024-10-16 20:12:17 字数 74 浏览 0 评论 0原文

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

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

I have an App_Themes directory, and also Master pages for a ASP.NET website.

Can I use 2 different themes based on the master page?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烂柯人 2024-10-23 20:12:17

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

您不能直接应用 ASP.NET
主题到母版页。如果您添加一个
theme属性给@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;
    }
}

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

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

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

MSDN has an article about ASP.NET Master Pages And Themes

You cannot directly apply an ASP.NET
theme to a master page. If you add a
theme attribute to the @ Master
directive, the page will raise an
error when it runs.

However, themes are applied to master
pages under these circumstances:

  • If a theme is defined in the content
    page. Master pages are resolved in the
    context of content pages, so the
    content page's theme is applied to the
    master page as well.

  • If the site as a whole is configured
    to use a theme by including a theme
    definition in the pages Element
    (ASP.NET Settings Schema) element.

In addition to the above you can see the section about Themes and Skins. You can change theme programmatically

Example from 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;
    }
}

But you cannot use two themes at the same time, that does not make any sense. You could however change the theme based on which masterpage is used.

To answer your question in your comment, yes you can have different themes for different sub-folders. This is from MSDN:

A theme setting in the Web.config file
applies to all ASP.NET Web pages in
that application. Theme settings in
the Web.config file follow normal
configuration hierarchy conventions.
For example, to apply a theme to only
a subset of pages, you can put the
pages in a folder with their own
Web.config file or create a
element in the root Web.config file to
specify a folder. For details, see
Configuring Specific Files and
Subdirectories.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文