C# 从内容页启用母版页中的超链接时出现问题

C# 从内容页启用母版页中的超链接时出现问题,c#,asp.net,C#,Asp.net,我编写了代码,从内容页启用和禁用母版页上的超链接。调用DisableHyperlinkInMasterPage方法后,一切正常,超链接也被禁用。当我调用EnableHyperlinkInMasterPage方法时,超链接仍然不起作用。如果我们离开那个页面,我发现超链接开始工作了。我的问题是调用EnableHyperlinkInMasterPage方法后,如果不离开页面,超链接仍然被禁用且不工作,离开页面后,超链接将被启用。请帮助我解决此问题。我调试了代码,但在EnableHyperlinkInM

我编写了代码,从内容页启用和禁用母版页上的超链接。调用
DisableHyperlinkInMasterPage
方法后,一切正常,超链接也被禁用。当我调用
EnableHyperlinkInMasterPage
方法时,超链接仍然不起作用。如果我们离开那个页面,我发现超链接开始工作了。我的问题是调用
EnableHyperlinkInMasterPage
方法后,如果不离开页面,超链接仍然被禁用且不工作,离开页面后,超链接将被启用。请帮助我解决此问题。我调试了代码,但在
EnableHyperlinkInMasterPage
方法中未发现任何错误

private void DisableHyperlinkInMasterPage()
    {
        AssociateMaster mymaster = (AssociateMaster)Page.Master;
        HyperLink home = (HyperLink)mymaster.FindControl("Home");
        home.Enabled = false;
        HyperLink profile = (HyperLink)mymaster.FindControl("ProfileLink");
        profile.Enabled = false;
        HyperLink report = (HyperLink)mymaster.FindControl("Report");
        report.Enabled = false;
        HyperLink signout = (HyperLink)mymaster.FindControl("SignOut");
        signout.Enabled = false;
    }

    private void EnableHyperlinkInMasterPage()
    {
        AssociateMaster mymaster = (AssociateMaster)Page.Master;
        HyperLink home = (HyperLink)mymaster.FindControl("Home");
        home.Enabled = true;
        HyperLink profile = (HyperLink)mymaster.FindControl("ProfileLink");
        profile.Enabled = true;
        HyperLink report = (HyperLink)mymaster.FindControl("Report");
        report.Enabled = true;
        HyperLink signout = (HyperLink)mymaster.FindControl("SignOut");
        signout.Enabled = true;
    }

尝试使用属性来启用和禁用链接。并尝试尽可能少地使用FindControl。考虑到你的主页中有一个链接名为LNKTest.在母版页中编写以下代码:

 public bool TestLinkEnabled
 {
      get { return lnkTest.Enabled; }
      set {lnkTest.Enabled = value; }
 }
将此行添加到页面后,在内容页面中:

 <%@ MasterType VirtualPath="~/MasterPage.master" %>

您在EnableHyperlinkInMasterPage()中的代码似乎没有问题。在页面生命周期中的什么时候调用此方法?是否得到NullReferenceException?为什么不在母版页本身而不是在每个内容页中提供(public)方法?@Edwin de Koning-我在加载内容页后调用此方法。@Tim-我没有收到我刚才添加的任何错误,我想如果调用此内容页后刷新母版页,或者呈现母版页控件,则问题可能会得到解决。即使您添加了虚拟路径,也可能提供了错误的ID或
NamingContainers
来查找
超链接。“完全加载页面后”是什么意思?您还没有回答为什么不简单地将方法添加到母版页而不是每个ContentPage。
  Master.TestLinkEnabled = true;
  Master.TestLinkEnabled = false;