ASPX访问母版页功能
本文关键字:功能 母版页 访问 ASPX | 更新日期: 2023-09-27 18:29:37
我正试图从另一个ASPX页面访问母版页代码隐藏中的一个函数,如下所示。
Main.master.cs:
public partial class Main : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
...
}
public static bool test()
{
return true;
}
}
产品.aspx:
<%@ Page Language="C#" MasterPageFile="~/Main.master" EnableEventValidation="false"
AutoEventWireup="true" ValidateRequest="false" CodeFile="Product.aspx.cs" Inherits="Common_Product" Title="Product" %>
...
<asp:Label id="test123" runat="server" />
产品.aspx:
using SiteABC.Accelerate;
public partial class Common_Product : SiteABC.Accelerate.SerializePageViewState
{
private void Page_Load(Object sender, EventArgs e)
{
Main cm = (Main)Page.Master;
test123.Text = "yo | " + cm.test();
}
}
这导致编译器错误:
Compiler Error Message: CS0176: Member 'Main.test()' cannot be accessed with an instance reference; qualify it with a type name instead
这种情况下出了什么问题?
谢谢。
试试这个:
public partial class Main : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
...
}
public bool test()
{
return true;
}
}
Error说得很清楚,不能用实例引用访问静态方法。你需要这样做:
test123.Text = "yo | " + Main.test();
然而,我不确定把这样的方法放在你的主页上是否是最好的做法。。。您应该创建一个新类并使用它。
更改测试,使其成为属性
public partial class Main : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
...
}
public Property bool test()
{
get { return true; }
}
}
不能使用实例对象访问静态方法。
应该是
Main.test();