在ASP.NET页或母版页中注册.ascx ASP.NET用户控件将加载或不加载它

本文关键字:加载 NET ASP 控件 用户 注册 母版页 ascx | 更新日期: 2023-09-27 18:21:48

如果我在ASP.NET页面中注册用户控件,控件是否会加载到该页面
<%@ Register Src=".." TagName="tag" TagPrefix="pre" %>
即使我没有在页面中使用它
<pre:tag id='control123' />

因为即使我没有调用控件,我的部分代码也会被执行,所以我在进行性能评测时发现了这一点。

在ASP.NET页或母版页中注册.ascx ASP.NET用户控件将加载或不加载它

在这种情况下,您的用户控件将加载到服务器端的页面对象,这意味着它将在ASP.NET应用程序的整个生命周期中进行处理,但由于您没有创建控件实例,因此将呈现非输出html。您使用的是"type",而不是"instance"。

回答你的问题:是的,它会被加载,但不会被渲染,数据绑定,等等…

2012年7月2日编辑

如果你想摆脱注册指令,你总是可以使用web.config-遵循这篇Scottgu文章的说明。

Register指令仅用于在前缀和控件之间创建关联。它只在以声明方式加载控件时才重要。它只是为了让开发变得容易。

除非您在某个地方声明了控件的实例,否则无法调用Page_Load或任何私有方法。

此外,如果您没有在代码中的任何位置使用过,那么就不应该有Register指令。IMO我不认为Register指令造成了这个问题。