【问题标题】:How do I add a reference to a server control in my current website to the web.config如何将当前网站中的服务器控件的引用添加到 web.config
【发布时间】:2009-10-16 15:05:03
【问题描述】:

我扩展了一个服务器控件(不是用户控件)并将代码放在我的 app_code 文件夹中。 我想在网络配置中添加标签前缀,但是

<add tagPrefix="cc1" namespace="mynamespace" />

<add tagPrefix="cc1" namespace="mynamespace" assembly="currentwebsitename" />

不工作。 我收到此错误: 错误 147 未知服务器标签 'cc1:Control'

【问题讨论】:

  • 您是否确认可以在页面指令中注册标签修复?如果没有,您可能会收到一条信息更丰富的错误消息。

标签: asp.net web-config custom-server-controls


【解决方案1】:

要注册 App_Code 文件夹中的服务器控件,您只需要标签前缀和命名空间。所以在 web.config 中它看起来像这样......

<add tagPrefix="cc1" namespace="mynamespace"/>

在一个页面中它看起来像这样......

<%@ Register TagPrefix="cc1" Namespace="mynamespace" %>

需要注意的一个问题是,当您将新项目添加到 App_Code 文件夹时,默认情况下网站项目根本不包含任何命名空间,因此您需要明确确保您的控件具有命名空间。

【讨论】:

    【解决方案2】:

    您需要将控件放入名为“currentwebsitename.dll”的 DLL 中(如果您希望它以第二种方式工作)或者您需要通过 src 属性指定源(如果您想这样做第一种方式):

    <add tagPrefix="cc1" namespace="mynamespace" src="app_code/control_name_here"/>
    

    也尝试阅读这两篇文章:

    http://msdn.microsoft.com/en-us/library/sbz9etab.aspx

    http://msdn.microsoft.com/en-us/library/yhzc935f.aspx

    【讨论】:

    • src 属性仅用于用户控件,不能存在于 App_Code 文件夹中。如果您尝试使用 src 属性中 App_Code 文件夹中的任何内容,则会收到以下错误:文件“/Web/App_Code/CustomServerControl.cs”位于特殊目录“App_Code”中,这是不允许的。
    猜你喜欢
    • 1970-01-01
    • 2011-10-29
    • 2010-11-24
    • 2014-02-13
    • 2015-07-12
    • 1970-01-01
    • 2015-12-04
    • 2013-03-16
    相关资源
    最近更新 更多