gpt4 book ai didi

c# - ASP.NET:通过命名空间一次注册多个控件?

转载 作者:太空狗 更新时间:2023-10-29 22:24:22 25 4
gpt4 key购买 nike

是否可以在 aspx 文件中注册用户控件的完整命名空间,而不是分别注册每个控件?

我创建了一堆用户控件并将它们收集到自己的命名空间“MyWebControls”中,如下所示:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="LevelFilter.ascx.cs" Inherits="MyWebControls.LevelFilter" %>

代码隐藏:

namespace MyWebControls
{
public partial class LevelFilter : System.Web.UI.UserControl
{
...
}
}

我现在尝试将它们包含在我的页面中的方法(以及无效的方法):

<%@ Register Namespace="MyWebControls" TagPrefix="ucs" %>
...
<ucs:LevelFilter />

有什么办法吗?显然它适用于 AjaxControlToolkit 等外部程序集,所以我想这应该是可能的。

我正在使用 ASP.NET 4.0。

最佳答案

对于用户控件,根本没有办法做到这一点:-(您只能使用 namespaceassembly 属性从程序集中引入控件,而用户控件不很好地导出到单独的程序集(我怀疑这与用户控件具有单独代码和标记的方式有关)。

如果您真的对此有信心,您需要将您的用户控件转换为服务器控件 - CodeProject 上有一篇文章 here看起来它可能会提供一些捷径来做到这一点。

否则,我最好的建议是在您的 web.config 中集中注册所有用户控件,以便它们可用于您的所有页面。为此,在 system.web/pages/controls 下的 web.config 中,像这样添加它们中的每一个:

<add tagprefix="ucs" tagname="MyFirstControl" src="~/UserControls/MyFirstControl.ascx" />

关于c# - ASP.NET:通过命名空间一次注册多个控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5183376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com