我有一个项目,我正在尝试在页面上注册一个自定义服务器控件(没有.ascx文件)。我目前正在使用
班级宣言
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); } } }
在我的页面上,
<%@ Register TagPrefix="myControls" Namespace="MyApp.Controls" %> <myControls:CustomControl runat="server" Text="What up!" />
我收到一个解析器错误,并显示“未知服务器标签”myControls:CustomControl’。“
我究竟做错了什么?
解决方法
那么,如果这个控件在另一个类库中,或者即使它在同一个库中,那么在@Register中指定控件的程序集也不是个坏主意:
<%@ Register TagPrefix="myControls" Namespace="MyApp.Controls" Assembly="MyApp" %> <myControls:CustomControl runat="server" Text="What's up!" />
清理和重建您的解决方案,以验证一切正确编译!