我的母版页中有以下功能(尝试点击此链接:http://www.braintrove.com/id/17/page/3):
public void PopulateMessageSlider()
{
strSql = @"";
using (SqlConnection conn = new SqlConnection(str))
{
//function
}
}
我正在尝试从我的内容页面访问该功能,如下所示:
Site stMaster;
stMaster = (Site)Page.Master.Master;
stMaster.PopulateMessageSlider();
我收到以下错误:
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
[NullReferenceException: Object reference not set to an instance of an object.]
MyProject.Pages.ContentPage1.Page_Load(Object sender, EventArgs e) +279
System.Web.UI.Control.LoadRecursive() +70
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3177
我该如何解决这个问题?
答案 0 :(得分:1)
将stMaster = (Site)Page.Master.Master;
更改为stMaster = (Site)Master;
。您没有嵌套的母版页,因此无需访问母版的母版。
此外,如果母版页类型不会在运行时更改,您可以在页面上设置MasterType。这样就无需进行演员表演,只需Master.PopulateMessageSlider();
。
答案 1 :(得分:1)
你可以这样轻松地做到这一点。
在您的内容页面中:
<%@ MasterType virtualpath="~/YourMasterPage.master" %>
在你的守则背后:
Master.PopulateMessageSlider();
更多信息here。