C# 如何从ASP中的代码隐藏访问站点母版页控件?

C# 如何从ASP中的代码隐藏访问站点母版页控件?,c#,asp.net,C#,Asp.net,我在我的站点母版页中设置了导航栏,我试图从引用它的每个页面后面的代码中访问它,以便更改pageload事件中的“活动”选定项。我已将每个li标记设置为唯一id和runat=“server”,但仍然无法引用它。这是我到目前为止在母版页上看到的内容 <nav class="navbar navbar-inverse"> <div class="container-fluid"> <div class="navbar-header">

我在我的站点母版页中设置了导航栏,我试图从引用它的每个页面后面的代码中访问它,以便更改pageload事件中的“活动”选定项。我已将每个li标记设置为唯一id和runat=“server”,但仍然无法引用它。这是我到目前为止在母版页上看到的内容

<nav class="navbar navbar-inverse">
    <div class="container-fluid">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
        </div>
        <div class="collapse navbar-collapse" id="myNavbar2" >
            <ul class="nav navbar-nav">
                <li class="active" id="nbHome" runat="server"><a href="HomePage.aspx">Home</a></li>
                <li><a href="Gallery.aspx" id="nbGallery" runat="server">Gallery</a></li>
                <li><a href="Services.aspx" id="nbServices" runat="server">Services</a></li>
                <li><a href="Tutorials.aspx" id="nbTutorials" runat="server">Tutorials</a></li>
                <li><a href="FAQ.aspx" id="nbFAQ" runat="server">F.A.Q.</a></li>
                <li><a href="Contact.aspx" id="nbContact" runat="server">Contact</a></li>
            </ul>
        </div>
    </div>
</nav>


您可以使用
FindControl
在主控中查找
HtmlControl

HtmlControl control = Master.FindControl("nbGallery") as HtmlControl;
control.Attributes.Add("class", "active");

这需要
使用System.Web.UI.HtmlControls
位于.cs文件顶部。

可能重复的不同之处在于,我没有为其设置专门的CSS类,并且我没有收到任何异常-我只是无法确定如何从PageLoad事件引用控件。遗憾的是,没有更改-所选项保持不活动状态。不过我还是要把它摆弄一下。对旧的选定项使用类似的代码来执行control.Attributes.Remove(“类”);如果在页面中使用此代码段来搜索主控中的控件,那么它在我的测试环境中也可以正常工作。如果在主控程序的代码隐藏中使用它,则需要删除
主控程序。
它成功找到它,并可以从预选的类中删除该类。我试图从引用母版页的一个aspx页面的页面加载中引用它(成功),它只是不改变类本身。你所说的“改变类”是什么意思,你检查过html吗