这让我发疯了。在过去,我已经能够拥有一个母版页,在该页面上放置一个用户控件,并创建一个引用该usercontrol的只读属性,并从派生页面访问usercontrol及其所有属性。现在我收到此错误:
“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";
}
如果我在派生页面的页面声明中放置了一个引用,对于usercontrol它可以工作,但我不应该这样做。我不确定发生了什么。我以前从来没有这样做过。我唯一能想到的是我的web.config设置不同,但即使在我的旧页面中,我也没有看到对usercontrol的任何直接引用。
更新: 我可能弄错了。回想一下旧代码,我确实在页面指令中添加了对派生页面上usercontrol的引用。
Perhpas有一种不需要添加指令的方法吗?
答案 0 :(得分:0)
我错了。回想一下旧代码,我确实在页面指令中添加了对派生页面上usercontrol的引用。