smartcaveman smartcaveman - 28 days ago 9
ASP.NET (C#) Question

How to register custom server control on ASP.NET page

I have a project and I am trying to register a custom server control (there is no

.ascx
file) on the page. I am currently using

Class Declaration



namespace MyApp.Controls{
public class CustomControl: WebControl{
public string Text
{
get
{
String s = (String)ViewState["Text"];
return ((s == null) ? String.Empty : s);
}
set
{
ViewState["Text"] = value;
}
}
protected override void RenderContents(HtmlTextWriter output)
{
output.Write(Text);
}
}
}


On my page,

<%@ Register TagPrefix="myControls" Namespace="MyApp.Controls" %>
<myControls:CustomControl runat="server" Text="What up!" />


I receive a Parser Error, with the message "Unknown server tag 'myControls:CustomControl'."

What am I doing wrong?

Answer

Well, if this control is in another class library, or even if it's in the same one, it wouldn't be a bad idea to specify control's assembly in @Register:

<%@ Register TagPrefix="myControls" Namespace="MyApp.Controls" Assembly="MyApp" %>
   <myControls:CustomControl runat="server" Text="What's up!" />

Clean and rebuild your solution too in order to verify everything is compiled rightly!

Comments