我有以下几页:
用户控制
...
public partial class IDowner : System.Web.UI.UserControl
{
public string owner;
protected void Page_Load(object sender, EventArgs e)
{
//do stuff
}
母版页
<body runat="server">
<form id="form1" runat="server">
<uc3:IDowner id="IDuser1" runat="server" />
<%if (owner != "test")
{ //do stuff
} %>
</form>
</body>
内容页面
<body runat="server">
<form id="form1" runat="server">
<%if (owner != "test")
{ //do stuff } %>
</form>
</body>
我的问题是母版页无法识别变量(所有者)。它在当前的上下文中找不到它。而内容页面在当前上下文中找到它。怎么了?
由于
答案 0 :(得分:0)
您只能按类实例访问类成员,因此您的代码应该是
内容页: 使用属性定义接口,通过将母版页属性强制转换为内容页面上的接口,在主页面中实现该接口并访问接口属性。 请参阅以下示例。
<body runat="server">
<form id="form1" runat="server">
<uc3:IDowner id="IDuser1" runat="server" />
<%if (IDuser1.owner != "test")
{ //do stuff
} %>
</form>
</body>
public interface IMyMaster
{
string owner { get; }
}
public class YourMasterPage : MasterPage, IMyMaster
{
//enter code here
public string owner
{
get
{
this.IDuser1.owner;
}
}
}
在ASPX上
var oIMyInterface=this.MasterPage as IMyInterface;
if(oIMyInterface!=null && oIMyInterface.owner!="test")
{
}