我在aspx页面上进行了以下设置:
<%@ Page Title="" Language="C#" MasterPageFile="~/tt.master" AutoEventWireup="true" CodeFile="login.aspx.cs" Inherits="tt_login" %>
<%@ MasterType VirtualPath="~/tt.master" %>
,这在aspx.cs页面上:
public partial class tt_login : System.Web.UI.Page
{
protected new ttUser User
{
get { return Master.User; }
set { Master.User = value; }
}
在这种情况下,ttUser
能够从母版页访问变量。
到目前为止一切都很好。
接下来,我有一个ascx页面,具有以下设置:
<%@ Control Language="C#" MasterPageFile="~/tt.master" AutoEventWireup="true" CodeFile="ttRightNav.ascx.cs" Inherits="Controls_ttRightNav" %>
<%@ MasterType VirtualPath="~/tt.master" %>
并在同一页面上:
protected new ###.##.ttUser User
{
get { return Master.User; }
set { Master.User = value; }
}
只有这次它说the name master does not exist in the current context
就我所知,设置完全一样 - 我不明白为什么它不起作用。
有几点想法:
ascx页面不在根文件夹中 - 但是当它使用~
时它会引用根,所以这不重要吗?
是因为这是一个ascx页面吗?
我错过了什么吗?
我尝试从ascx.cs页面引用主变量,但仍然遇到同样的问题。
基本上,如何在ascx页面上从母版页引用变量?
我已经看到了一些关于从母版页进行投射的问题,但到目前为止还没有能够让它工作。
任何帮助将不胜感激 - 我完全陷入困境!!!
编辑:
这不是上述问题的重复 - 上面的问题是关于控件 - 我试图访问一个对象
答案 0 :(得分:2)
ttuser
公开 tt_login loginPage = Page as tt_login;
或
tt_login loginPage = Master as tt_login;