我試圖在使用母版頁和內容Web窗體的我的asp.net站點中的body標籤上設置一個類。我只想通過將bodycssclass屬性(見下文)添加到內容Web窗體頁面指令來實現此目的。ASP.NET Content Web Form - 佔位符內容消失
它通過下面的解決方案工作,但是當我試圖查看Default.aspx時Content1控件丟失其內容。 任何想法爲什麼?
下面是我如何做到這一點。我有以下內容的母版頁:
<%@ Master Language="C#" ... %>
<html><head>...</head>
<body id=ctlBody runat=server>
<asp:ContentPlaceHolder ID="cphMain" runat="server" />
</body>
</html>
它後面的代碼看起來像:
public partial class Site : MasterPageBase
{
public override string BodyCssClass
{
get { return ctlBody.Attributes["class"]; }
set { ctlBody.Attributes["class"] = value; }
}
}
它繼承:
public abstract class MasterPageBase : MasterPage
{
public abstract string BodyCssClass
{
get;
set;
}
}
我Default.aspx的定義爲:
<%@ Page Title="..." [master page definition etc..] bodycssclass="home" %>
<asp:Content ID="Content1" ContentPlaceHolderID="cphMain" runat="server">
Some content
</asp:Content>
後面的代碼這個文件看起來像:
public partial class Default : PageBase { ... }
,它繼承自:
public class PageBase : Page
{
public string BodyCssClass
{
get
{
MasterPageBase mpbCurrent = this.Master as MasterPageBase;
return mpbCurrent.BodyCssClass;
}
set
{
MasterPageBase mpbCurrent = this.Master as MasterPageBase;
mpbCurrent.BodyCssClass = value;
}
}
}
我已經收窄的問題降到'MasterPageBase mpbCurrent =此。作爲MasterPageBase的主人;',如果我評論和下面的內容仍然保留。似乎在那時引用母版頁是不正確的。 – 2010-04-09 11:29:39