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