我现在感觉自己像个白痴,但我不能为我的生活弄清楚为什么我似乎无法从我的asp.net网页中调用用户控件。我还在学习asp.net但我找不到任何来自谷歌搜索的信息。
我正在尝试在用户按下链接按钮时在页面上加载特定控件。所以我通过右键菜单创建了一个空的用户控件:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>
换句话说,我没有触及创建的用户控件的任何部分。然而,尝试创建此Web控件并将其添加到表单似乎不起作用,因为它声称WebUserControl类不存在(我的项目中没有其他控件):
UserControl blah = new WebUserControls();
生成“类型或命名空间无效”。为什么我的asp.net webform页面都不能控制范围?
答案 0 :(得分:3)
必须将新控件添加到网站的Web.config
文件中。
<configuration>
<system.web>
<pages>
<controls>
<add tagPrefix="my"
tagName="WebUserControl"
src="~/WebUserControl.ascx"/>
</controls>
</pages>
</system.web>
</configuration>
使用此选项将新控件放在.aspx
页面中。
<my:WebUserControl runat="server" ID="MyWebUserControl" />
答案 1 :(得分:0)
除了在web.config中逐个注册它们之外,您还可以在引用该控件的标记文件源中使用<%@ Register %>
指令。
或者,您可以将控件移动到DLL中,并通过引用web.config中的程序集将它们全部包含在内(尽管需要额外的工作)。