ASP.NET:通过命名空间一次注册多个控件?
是否可以在aspx-File中注册一个完整的usercontrol名称空间,而不是单独的每个控件?
我创建了一堆usercontrols并将它们收集到一个自己的命名空间“MyWebControls”中,如下所示:
代码隐藏:
namespace MyWebControls { public partial class LevelFilter : System.Web.UI.UserControl { ... } }
我现在尝试将它们包含在我的页面中(以及什么不起作用):
...
有没有办法做到这一点? 显然它适用于像AjaxControlToolkit这样的外部程序集,所以我想这应该是可能的。
我正在使用ASP.NET 4.0。
使用用户控件时,根本无法执行此操作:-(您只能使用namespace
和assembly
属性从程序集中引入控件,并且用户控件不能很好地导出到单独的程序集(我怀疑它与用户控件具有单独的代码和标记的方式)。
如果您真的对此有所了解,那么您需要将用户控件转换为服务器控件 – 这里的CodeProject上有一段看起来可能会提供一些快捷方式来执行此操作。
否则,我最好的建议是在web.config中集中注册所有用户控件,以便所有页面都可以使用它们。 为此,在system.web/pages/controls
下的web.config中添加如下所示:
全球注册
在system.web/pages/controls
下的web.config中
有关.NET 4.0中此部分web.config
文档,请访问msdn.microsoft.com/en-us/library/ms164640.aspx。
对于本地注册
@Register
指令@Register
的原因是您省略了assembly属性。 这条线应该是这样的
<%@ Register TagPrefix="ucs" Namespace="MyWebControls" Assembly="MyAssemblyName" %>
有关详细信息,请参阅此相关post 。
- ASP.NET MVC 5中的自定义错误页面
- 使用MySql MySQLMembershipProvider – autogenerateschema =“true”不起作用?
- system.web.mail vs system.net.mail
- ‘ServiceCollection’不包含’AddSingleton’的定义
- 如何找出ASP.NET中当前登录用户的名称?
- 如何在MVC Razor DropDownList中使用Html.Raw?
- 使用数据库拦截器的entity framework软删除实现不起作用
- 如何以编程方式添加TemplateField
- ASP.NET Web API – 没有“MediaTypeFormatter”可用于读取“Int32”类型的对象