c# - ASP.NET 服务器控件错误 : Unknown server tag

标签 c# asp.net custom-controls

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

我在一个项目中构建控件并在另一个项目中引用它。在第二个项目中,我将控件放入工具箱并将控件拖/放到页面上。我可以毫无错误地编译 web 项目,但是当我浏览到页面时出现此错误:

Parser Error Message: Unknown server tag '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.config 中,同样使用 assembly 属性。但是在我的 web.config 中,我仍然收到错误:

<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);            
        }
    }
}

最佳答案

它应该只是:

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

关于c# - ASP.NET 服务器控件错误 : Unknown server tag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8540738/

相关文章:

c# - 像在 C# 中一样在 Javascript 中强制转换为 float

jquery - 如何删除溢出 :hidden on specific object

ios - 创建自定义 UITabBar Controller 并使用分隔符突出显示所选选项卡

c# - 如何在 MVC3 中将嵌套的 ViewModel 从 View 绑定(bind)到 Controller?

c# - 如何将非成员函数的地址存储在 DWORD 中 (c++)

c# - 是否可以将 vb6 "Val()"转换为 c#?

asp.net - 如何设置 ext :SpinnerField at edit time of gridpanel 的 maxValue

c# - IIS 中是否有 ASP.NET 网站管理工具?

angular - 在自定义响应式(Reactive)表单控件上禁用设置会导致超出最大调用堆栈大小

delphi - 未加载自定义控件的已发布 TStrings 属性