ASP.. NET服务器控制错误:未知的服务器标签

本文关键字:服务器 未知 标签 错误 NET 控制 ASP | 更新日期: 2023-09-27 18:18:19

这是我第一次尝试建立一个ASP。. NET服务器控件。编写控件代码很简单,但我遇到了一个障碍,试图在网页上获得控件。

我在一个项目中构建控件,并在另一个项目中引用它。在第二个项目中,我将控件放入工具箱并在页面上拖放控件。我可以编译web项目没有错误,但当我浏览到页面时,我得到这个错误:

解析器错误消息:未知服务器标签'cc1:StandardControl1'.

环顾四周,我看到其他人因为各种原因有这个问题,但似乎没有一个适用于我的情况。一种解决方案是将程序集添加到寄存器标记,但这不是我的页面的问题:
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="another.aspx.vb" Inherits="Educate.another" %>
<%@ Register Assembly="ServerControlSandbox" Namespace="ServerControlSandbox" TagPrefix="cc1" %>
<!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></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <cc1:StandardControl1 runat="server">
        </cc1:StandardControl1>
    </div>
    </form>
</body>
</html>

另一个解决方案是将其添加到web中。配置,同样使用程序集属性。但我的网里有这个。配置我仍然得到错误:

<controls>
        <add tagPrefix="cc1" namespace="ServerControlSandbox" assembly="ServerControlSandbox"/>
                <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            </controls>

我想有一些简单的东西我错过了,但我看没有错,从我看过的例子来判断。有人有什么想法吗?谢谢。

同样,这里是控制代码:

namespace ServerControlSandbox
{
    [DefaultProperty("Text")]
    [ToolboxData("<{0}:StandardControl1 runat=server></{0}:StandardControl1>")]
    public class StandardControl : WebControl
    {
        [Bindable(true)]
        [Category("Appearance")]
        [DefaultValue("")]
        [Localizable(true)]
        public string Text
        {
            get
            {
                String s = (String)ViewState["Text"];
                return ((s == null) ? "[" + this.ID + "]" : s);
            }
            set
            {
                ViewState["Text"] = value;
            }
        }
        protected override void RenderContents(HtmlTextWriter output)
        {
            output.Write(Text);
            string block = "<p>Here is some text.</p>";
            output.Write(block);            
        }
    }
}

ASP.. NET服务器控制错误:未知的服务器标签

应该是:

<cc1:StandardControl ID="scSomething" runat="server">
</cc1:StandardControl>