添加 class 到 ASP.NET MasterPage 控件

Add class to ASP.NET MasterPage control

这是我的代码 MasterPage:

<li id="liABOUT" runat="server"><a href="About.aspx">ABOUT</a></li>

当我在另一个引用 MasterPage 的页面上时,我想向这个 li 控件添加一个 class,就像这样。无法让它工作。使用 ASP.NET 4.5

Me.Master.FindControl("ContentPlaceHolderMaster").FindControl("LiAbout").Attributes.Add("class", "active")

VB.NET 或者 C# 代码就可以了

您可以在 MasterPage 中创建 public 属性 :

public String LiAboutClass
{
    get { return liABOUT.Attributes["class"]; }
    set { liABOUT.Attributes["class"] = value; }
}

在您的 ContentPage 中访问此 属性:

var siteMaster = (SiteMaster)this.Master;
if (siteMaster != null) siteMaster.LiAboutClass = "active";

编辑:您也可以使用MasterType。它允许您直接访问 MasterTypes 属性。

这对我有用。我首先将其转换为 HtmlGenericControl 然后添加属性。

(Master.FindControl("liABOUT") as HtmlGenericControl).Attributes.Add("class", "active");

这有效....

' Get reference to control located on master page
 Dim lb As HtmlGenericControl = Page.Master.FindControl("liABOUT")
 lb.Attributes.Add("class", "active")