我如何从内容页的代码后端更改母版页的背景?

25

我希望在一个主页的后台代码(C#)中,将background-color样式添加到使用该主页的内容页面的<body>标签中。我有多个内容页面需要根据所加载的内容页面不同,使主页具有不同的颜色,以便与内容页面的主题相匹配。以下是我的解决方案:


我更希望得到如下的解决方案:

Master.Attributes.Add("style", "background-color: 2e6095");

在内容页面的页面加载函数内部。但我无法让上面的一行代码工作。我只需要更改页面中 <body> 标签的 background-color


这里有一个更好的解决方案:http://stackoverflow.com/questions/21476068/asp-net-changing-master-page-section-css-from-content-page - NoWar
3个回答

10

针对这个特定案例,我会做以下操作:

i. 将该区域定义为服务器端控件。

<body runat="server" id="masterpageBody">

ii. 在您的内容 aspx 页面中,使用 register 注册 MasterPage:

<% MasterPageFile="..." %>
iii. 在内容页面中,你现在可以简单地使用

Master.FindControl("masterpageBody")

现在,您可以访问控件并进行任何您喜欢的属性/样式更改!


您能否解释一下Master.FindControl("masterpageBody")的含义,并提供一些添加CSS类的示例呢? - NoWar

1
这是我想出来的:
在页面加载函数中:
HtmlGenericControl body = (HtmlGenericControl)Master.FindControl("default_body");
body.Style.Add(HtmlTextWriterStyle.BackgroundColor, "#2E6095");

在哪里

default_body = 正文标签的ID。


0

我想您在谈论内容管理系统。我过去处理这种情况的方式是:

  1. 允许页面/内容定义额外的自定义样式表,或
  2. 允许页面/内容定义内联样式标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接