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

I specifically want to add the style of background-color to the <body> tag of a master page, from the code behind (C#) of a content page that uses that master page.

我有不同的内容页面,需要根据加载的内容页面使主页面具有不同的颜色,以便主页面与内容页面的主题相匹配。

我有一个解决方案如下:


我正在寻找更像是的东西:

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

Inside of the page load function of the content page. But I can't get the above line to work. I only need to change the background-color for the <body> tag of the page.

0
额外 编辑
意见: 1
这是一个更好的解决方案 stackoverflow.com/questions/21476068/…
额外 作者 Academy of Programmer,

3 答案

我相信你在谈论一个内容管理系统。我过去处理这种情况的方式是:

  1. 允许页面/内容定义额外的自定义样式表或
  2. 允许页面/内容定义嵌入式样式标签
0
额外

这就是我想到的:

在页面加载功能中:

HtmlGenericControl body = (HtmlGenericControl)Master.FindControl("default_body");
body.Style.Add(HtmlTextWriterStyle.BackgroundColor, "#2E6095");

哪里

default_body =正文标记的ID。

0
额外

我会为特定情况做的是:

一世。将主体定义为服务器端控件

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

II。在您的内容aspx页面中,注册MasterPage和注册表:

<% MasterPageFile="..." %>

III。在内容页面中,您现在可以简单地使用

Master.FindControl("masterpageBody")

并有权访问该控件。现在,你可以改变你喜欢的任何属性/风格!

0
额外
您是否介意澄清Master.FindControl(“masterpageBody”)并添加一些示例以添加css类。
额外 作者 Academy of Programmer,