从ascx页面上的母版页访问变量

时间:2016-02-19 11:17:44

标签: c# asp.net master-pages

我在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页面上从母版页引用变量?

我已经看到了一些关于从母版页进行投射的问题,但到目前为止还没有能够让它工作。

任何帮助将不胜感激 - 我完全陷入困境!!!

编辑:

这不是上述问题的重复 - 上面的问题是关于控件 - 我试图访问一个对象

1 个答案:

答案 0 :(得分:2)

  1. ttuser公开
  2. 尝试将母版页转换为特定类,然后获取嵌入字段
  3. tt_login loginPage = Page as tt_login;

    tt_login loginPage = Master as tt_login;