看不到新的asp.net用户控件

时间:2009-12-31 01:05:58

标签: asp.net user-controls

我现在感觉自己像个白痴,但我不能为我的生活弄清楚为什么我似乎无法从我的asp.net网页中调用用户控件。我还在学习asp.net但我找不到任何来自谷歌搜索的信息。

我正在尝试在用户按下链接按钮时在页面上加载特定控件。所以我通过右键菜单创建了一个空的用户控件:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>

换句话说,我没有触及创建的用户控件的任何部分。然而,尝试创建此Web控件并将其添加到表单似乎不起作用,因为它声称WebUserControl类不存在(我的项目中没有其他控件):

UserControl blah = new WebUserControls();

生成“类型或命名空间无效”。为什么我的asp.net webform页面都不能控制范围?

2 个答案:

答案 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中的程序集将它们全部包含在内(尽管需要额外的工作)。