Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 注册复合控件_Asp.net - Fatal编程技术网

Asp.net 注册复合控件

Asp.net 注册复合控件,asp.net,Asp.net,我正在学习自定义控件,刚刚完成我的第一个。问题是,我正在努力在我的web配置中注册它,并让编译器识别它。现在,这将导致一个关于控件引用的YSOD 注意:确切错误-错误未知服务器标记“cc:LblTextBox” 谢谢大家! 网络配置 //.. //.. <pages> <controls> <add tagPrefix="cc" namespace="Controls.Server"/> </con

我正在学习自定义控件,刚刚完成我的第一个。问题是,我正在努力在我的web配置中注册它,并让编译器识别它。现在,这将导致一个关于控件引用的YSOD

注意:确切错误-错误未知服务器标记“cc:LblTextBox”

谢谢大家!

网络配置

//..
//..
     <pages>
       <controls>
         <add tagPrefix="cc" namespace="Controls.Server"/>
       </controls>
     </pages>
</system.web>
加价

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ControlsMain.aspx.cs" Inherits="Pages_ControlsMain" Trace="true" %>

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head runat="server">
     <title>Controls Area</title>
 </head>
 <body>
    <form id="form1" runat="server">
    <div>
          First attempt at a simple composite control <br />
         <cc:LblTextBox ID="ccLblTbHybrid" runat="server" LabelText="Name:" />
   </div>
   </form>
 </body>

控制区
首次尝试使用简单的复合控件

尝试在页面顶部注册复合控件:

<%@ Register cc="myControls" Namespace="Controls.Server" %>

您还可以尝试在web.config中指定程序集:

<add tagPrefix="cc" namespace="Controls.Server" assembly="whatever"/>

问题源于将项目设置为ASP.Net网站

这有一个缺点,因为直到运行时才知道程序集的名称

我将该项目重新创建为ASP.NETWeb应用程序,允许DLL的预编译。。。。从而使我能够为项目提供名称空间

然后我将安倍的建议添加到条目中,现在一切都正常了

<add tagPrefix="cc" namespace="Controls.Server" assembly="DevLore"/>


该程序集引发了另一个问题。我注意到,当我创建新文件夹并将代码放入其中时,它们并没有自动生成名称空间。我必须手动分配一个。通常我从来没有这样做过。是否可能我没有程序集名称,这就是为什么它不能引用程序集中的命名空间?另一方面,该项目是一个ASP.net网站项目。据我所知,程序集DLL不是预编译的。。。这会影响我注册名称空间的方式吗?您的回答部分正确!我发布了完整的解决方案。
<add tagPrefix="cc" namespace="Controls.Server" assembly="DevLore"/>