I am learning custom controls and just finished my first one. The problem is that I am struggling to register it in my web config and have the compiler recognize it. Right now this results in a YSOD about the reference to the control.
note: exact error – Error Unknown server tag ‘cc:LblTextBox’.
Thank you!
Web Config
//..
//..
<pages>
<controls>
<add tagPrefix="cc" namespace="Controls.Server"/>
</controls>
</pages>
</system.web>
The control code-behind
namespace Controls.Server
{
public class LblTextBox : CompositeControl
{
//...
}
}
mark-up
<%@ 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>
The issue stemmed from setting up the project as an ASP.Net Web Site
This has a drawback because the name of your assembly is not known till runtime.
I recreated the project as a ASP.Net Web Application, allowing for procompilation of the DLLs …. thus giving me the ability to give the project a namespace.
I then added abe’s suggestion into the entry and all is working now