c# - ASP.NET 从页面上的外部 dll 注册一个控件

标签 c# asp.net

我今天正在用头撞砖墙。我正在将我在旧机器上开发的网站移植到新的开发环境中。我没有复制所有文件,因为我没有一个很好的文件结构,并且在我进行的过程中需要删除部分代码。

最初我创建了一个网站(文件 -> 新建 -> 网站)。我想要一个类似这样的文件结构:

Popular folder structure for build

所以我创建了一个新的空白解决方案,因此 sln 文件是独立的,然后添加了项目(各种 DLL 项目)和 ASP.NET Web 应用程序。

这最后一部分似乎给我带来了一些让我头疼的问题。据我了解(这可能有点受限),网站(如我最初拥有的)与我后来创建的网站类型不同。例如,App_Code 文件夹部分不能像以前那样工作。为了解决这个问题,我为 webLibrary cs 文件创建了一个单独的 DLL 并添加了对它的引用。

我现在的问题是如何在页面上注册它以便能够使用其中的控件。例如,我有一个继承自 TextBox 的控件,当它位于我可以使用的 App_Code 文件夹中时:

<%@ Register TagPrefix="sarg" Namespace="MyNameSpace" %> 

然后使用

<sarg:SARGTextBox id="clienttitletxtbox" runat="server" OnTextChanged="textboxfiltering_TextChanged" AutoPostBack="true"></sarg:SARGTextBox>

现在它在自己的 DLL 和命名空间中,我不知道如何让它工作,我只是不断收到警告说“无法解析符号‘SARGTextBox’”。

这可能真的很简单,但我再也见不到树木了。

谢谢

最佳答案

我认为您创建的是 WebApplication 而不是 Website。 WebApplication 不支持 App_Code。

  1. 添加您的 ClassLibrary 作为引用。
  2. 然后在 web.config 中注册您的控件。
    <pages>
        <controls>
            <add tagPrefix="myctl" namespace="Namespace.ClassName" assembly="AssemblyName"/>
        </controls>
    </pages>
  1. 重建您的解决方案。
  2. 打开页面并从工具箱中找到您的控件并将其拖放到您的页面上,

关于c# - ASP.NET 从页面上的外部 dll 注册一个控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1582632/

相关文章:

c# - 在 DDD 中拥有独立的领域模型和持久性模型

c# - 获取从 SQL Server 返回的字符串值

asp.net - 我需要将 .compiled 文件复制到生产服务器吗?

c# - 如何在 C# 中获取目录大小(目录中的文件)?

c# - PagedList 不会在 asp.net mvc 中进行真正的分页

c# - 两次调用 ReadAsFormDataAsync

c# - 用 C++ 编写控件以便 C++ 和 C# 程序可以使用它的最佳方法是什么?

c# - 如何忽略 McAfee 扫描引起的异常

asp.net - 文本框应该只接受日期

c# - 如何使登录页面成为 ASP.NET MVC Web 应用程序中的启动页面?