【问题标题】:asp.net adding custom control to pageasp.net 向页面添加自定义控件
【发布时间】:2013-09-26 14:01:20
【问题描述】:

我正在尝试将预编译的 dll 添加到我的网络表单项目中。 dll 是一个预编译的用户控件(不是服务器控件)。当我在该项目的 Web 表单上开发过程中测试用户控件时,一切正常。然后,我删除了 Web 表单,只保留了用户控件并将其发布到文件中。接下来,在我要使用它的项目中,我添加了对 dll 的引用,并确保在使用项目的 bin 文件夹中有它的副本。

我不确定,但我认为我的问题是准确理解 web.config(或注册标签)中的内容,这就是我对注册标签的内容:

<add assembly="CustomStatusNavigator" namespace="CustomStatusNavigator" tagPrefix="Custom" />

... 其中“CustomStatusNavigator 是用户控件项目的名称和包含我的 .cs 代码的命名空间。

我得到的错误是

The type or namespace name 'CustomStatusNavigator' does not exist in the namespace 'CustomStatusNavigator' (are you missing an assembly reference?)

我做错了什么?自定义 USER 控件可以转换为 dll 并像自定义控件一样使用,这只是一个神话吗?感谢任何帮助/指针,良好的链接。我已经用谷歌搜索过了。

【问题讨论】:

    标签: asp.net user-controls


    【解决方案1】:

    看到自定义控件不同,用户控件不同。

    当我们创建用户控件时,范围仅限于该应用程序。假设我们正在创建一个名为“Test.ascx”的用户控件。通过注册到页面指令的正下方,它可以在整个应用程序中使用。请记住。它不会创建任何 .dll 文件,它必须只是 .ascx。

    在自定义控件的情况下,您可以借助可用的服务器控件创建自己的控件。你可以编译它们,此时将生成相同的dll文件。

    此 dll 文件在其他项目中也很有用,但为此您必须将它的引用添加到任何新项目中。

    添加它的引用后,你可以在工具下看到它,并且在你想使用它时可以简单地拖放它。

    【讨论】:

    • 谢谢西德什。我与一位正在工作的程序员讨论了这个问题,并理解用户控件必须在项目中的某个位置有一个 ascx 文件,即使它是预编译的并且引用了 dll。决定走服务器控制路线。这是一个更陡峭的学习曲线,但进展顺利,当然值得付出努力。感谢您的帮助。
    猜你喜欢
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    • 2011-03-23
    • 1970-01-01
    • 2019-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多