无法访问母版页控件

时间:2013-10-08 21:18:46

标签: c# asp.net .net master-pages nullreferenceexception

我在母版页面中有这个:

<asp:ContentPlaceHolder ID="BannerPlaceHolder" runat="server">              
 <asp:HyperLink ID="PortalBanner" runat="server" 
                ImageUrl="Images/banner-12-5-11.jpg"   
                NavigateUrl="~/Default.aspx"></asp:HyperLink>
</asp:ContentPlaceHolder>

我希望能够更改超链接ImageUrl,但我得到一个空例外:

  

对象引用未设置为对象的实例。

这是我访问HyperLink的代码

ContentPlaceHolder cp = (ContentPlaceHolder)this.Master.Master.FindControl("BannerPlaceHolder");
HyperLink hp= (HyperLink)cp.FindControl("PortalBanner");

1 个答案:

答案 0 :(得分:2)

您确定它位于Master的{​​{1}}吗?如果没有,只需将其更改为:

Master

另一种方法是在主服务器中提供一个属性,您可以通过将其转换为实际类型来从页面访问该属性。

在主人的代码隐藏中:

ContentPlaceHolder cp = (ContentPlaceHolder)this.Master.FindControl("BannerPlaceHolder");
页面中的

public string PortalBannerImageUrl
{
    get {
        return this.PortalBanner.ImageUrl;
    }
    set {
        this.PortalBanner.ImageUrl = value;
    }
}