为什么我可以添加我的UserControl通过src和tagname,而不是通过汇编和命名空间

本文关键字:命名空间 汇编 tagname 添加 我可以 我的 UserControl src 通过 为什么 | 更新日期: 2023-09-27 17:48:57

我有几个UserControls是。cs文件和扩展WebControl。我通过以下方式将它们添加到我的.aspx页面:

<%@ Register TagPrefix="uc" Namespace="AssemblyName.My.Namespace" Assembly="AssemblyName" %>

然而,我发现我不得不通过htmltextwwriter做很多渲染。所以我想使用。ascx文件作为我的用户控件。但是,只有在使用以下语法时它们才会显示在页面上:

<%@ Register src="../../../controls/MyCustomControl.ascx" tagname="MyCustomControl" tagprefix="uc" %>

这些。ascx控件扩展了UserControl,并且相关的代码隐藏在与我的。cs web控件相同的命名空间中。

为什么我可以添加我的UserControl通过src和tagname,而不是通过汇编和命名空间

"我有几个UserControls是。cs文件"

这些是"自定义控件"或"web控件",而不是UserControls。UserControls有一个与它们相关联的标记,并继承UserControl

但是,只有在使用以下语法时,它们才会显示在页面上:"

这是因为UserControls是分裂(部分)类,其中包括未编译的部分(标记)。您可以只使用程序集引用添加它们,然后项目就可以编译了。但是,标记组件将不会被加载,并且您将在运行时获得对象引用错误和其他错误。