是否从派生页访问MasterPage上的UserControl属性?这以前很管用

本文关键字:属性 UserControl 派生 访问 上的 MasterPage 是否 | 更新日期: 2023-09-27 18:01:09

这让我抓狂。在过去,我可以拥有一个母版页,在该页上放置一个用户控件,创建一个引用该用户控件的只读属性,并从派生页访问该用户控件及其所有属性。现在我得到这个错误:类型"XXXX"是在未引用的程序集中定义的。必须添加对程序集"App_Web_2zw4yn55,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null"的引用
我看了看以前的项目,发现我能够做到这一点。我现在正在使用.Net 4.0,但不确定这是否是一个问题。

我的页面声明如下。。。

母版页:

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Main.master.cs" Inherits="MasterPages_Main" %>
<%@ Register src="../UserControls/WebUserControl.ascx" tagname="WebUserControl" tagprefix="uc1" %>
<uc1:WebUserControl ID="WebUserControl1" runat="server" />

母版页代码隐藏:

public UserControls_WebUserControl TheWebControl { get { return this.WebUserControl1; } }

派生页面:

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPages/Main.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ MasterType VirtualPath="~/MasterPages/Main.master" %>
<%@ Reference VirtualPath="~/MasterPages/Main.master" %>

衍生页面的代码隐藏:

protected void Page_Load(object sender, EventArgs e)
    {
        Master.TheWebControl.Pagetitle = "Hey";
    }

如果我在派生页面的页面声明中为用户控件放置一个引用,它会起作用,但我不应该这样做。我不知道发生了什么事。我以前从来没有这样做过。我唯一能想到的是,我的web.config设置有所不同,但即使在我的旧页面中,我也没有看到任何对用户控件的直接引用。

更新:我可能搞错了。再次回顾以前的代码,我确实在页面指令中添加了对派生页面上的用户控件的引用。

Perhpas还有其他方法可以做到这一点而不必添加指令吗?

是否从派生页访问MasterPage上的UserControl属性?这以前很管用

我错了。再次回顾以前的代码,我确实在页面指令中添加了对派生页面上的用户控件的引用。