代码之家  ›  专栏  ›  技术社区  ›  KallDrexx

无法查看新的ASP.NET用户控件

  •  0
  • KallDrexx  · 技术社区  · 14 年前

    我现在感觉自己像个白痴,但我一辈子都搞不明白为什么我不能从我的ASP.NET网页中调用用户控件。我仍在学习ASP.NET,但在谷歌上搜索不到任何信息。

    当用户按下LinkButton时,我试图在页面上加载一个特定的控件。因此,我通过右键单击菜单创建了一个空用户控件:

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

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

    UserControl blah = new WebUserControls();
    

    生成“类型或命名空间无效”。为什么我的ASP.NET Web窗体页都不能将控件置于作用域中?

    2 回复  |  直到 14 年前
        1
  •  3
  •   Vadim K.    14 年前

    必须将新控件添加到网站的 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" />
    
        2
  •  0
  •   RickNZ    14 年前

    除了在web.config中逐个注册它们之外,还可以使用 <%@ Register %> 引用该控件的标记文件源中的指令。

    或者,通过引用web.config中的程序集,您可以将控件移动到一个dll中并将它们全部包含在内(不过需要做一些额外的工作)。