在Master页面中我有:
<a id="loginlink" href="Login.aspx">Login</a>
<a id="logoutlink" href="Login.aspx">Logout</a>
在使用此母版页的其他页面中,我尝试这样做:
Page.Master.FindControl("loginlink").Visible = false;
这是Microsoft页面中提供的类似代码。但我明白了:
An exception of type 'System.NullReferenceException' occurred in HousingSurvey.dll but was not handled in user code
答案 0 :(得分:2)
这些还不是控件,只是一个标记。要使它们成为服务器端控件,请添加runat="server"
:
<a id="loginlink" href="Login.aspx" runat="server">Login</a>
<a id="logoutlink" href="Login.aspx" runat="server">Logout</a>
答案 1 :(得分:0)
这里的强打字会更好。这样,如果控件的名称发生更改,您将获得编译错误而不是运行时。早点失败。
母版页
<a id="loginlink" href="Login.aspx" runat="server">Login</a>
<a id="logoutlink" href="Login.aspx" runat="server">Logout</a>
内容页面
<%@ MasterType VirtualPath="~/masters/SourcePage.master" %>
背后的代码
Master.loginlink.Visible = false;