【发布时间】:2014-08-18 20:53:24
【问题描述】:
我正在尝试在 Visual Studio 2012/ASP.Net/C# 中动态创建用户控件,但是当我尝试在任何其他 aspx 或ascx 页面。我已经尝试重建它并删除命名空间,它似乎应该可以工作,但它没有!
我的 ascx 文件的第一行是这样的:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="AG_Controls_WebUserControl" %>
对应的代码如下:
public partial class AG_Controls_WebUserControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
我尝试在一个空白 aspx 页面后面的代码中声明它的实例,如下所示:
AG_Controls_WebUserControl test = new AG_Controls_WebUserControl();
我得到了:
错误 3 类型或命名空间名称“AG_Controls_WebUserControl”可能 找不到(您是否缺少 using 指令或程序集 参考?)
这是漫长的一天,我很累,但这不应该是火箭科学,但我看不出问题出在哪里。非常感谢您的帮助!
【问题讨论】:
-
你是否包含了用户控件的命名空间?
-
不,后面的代码中没有声明命名空间,所以它应该可以从项目的其余部分引用
-
如果您没有包含您可能想要做的命名空间,您是否尝试过将
CodeFile="WebUserControl.ascx.cs"更改为CodeBehind="WebUserControl.ascx.cs"查看网络应用程序的属性页面,看看是否有默认的命名空间使用那个 -
尝试创建一个新的用户控件并动态创建一个。如果可行,只需复制/粘贴代码 :) 你说这是漫长的一天,所以我可能会注意到一些太愚蠢的事情
-
我就是这么做的!实际的用户控件更复杂,所以我只是创建了一个标准的空控件来尝试缩小问题所在。我还尝试将“CodeFile”更改为“CodeBehind”,但控件本身无法编译,我只收到错误消息:“错误 1 无法加载类型“AG_Controls_WebUserControl”。”
标签: c# asp.net webusercontrol