如果我在ASP.NET页面中注册用户控件,控件是否会加载到页面?
<%@ Register Src=".." TagName="tag" TagPrefix="pre" %>
即使我没有在页面中使用?来调用它
<pre:tag id='control123' />
因为即使我没有调用控件,我的部分代码也会被执行,我发现当我进行性能分析时。
答案 0 :(得分:7)
在这种情况下,您的用户控件将被加载到服务器端的页面对象,这意味着它将在ASP.NET应用程序的整个生命周期中处理,但由于您不创建控件实例,因此将输出非输出html 。您使用的是“类型”,但不是“实例”。
回答你的问题:是的,它会被加载,但不会被渲染,数据库等......
2012年2月7日编辑
如果你想摆脱注册指令,你总是可以使用web.config - 按照this Scottgu帖子的说明进行操作。
答案 1 :(得分:1)
Register指令仅用于在前缀和控件之间创建关联。只有在声明性地加载控件时才有意义。它只是让开发变得容易。
除非您已在某处声明了控件的实例,否则无法调用Page_Load或任何私有方法。
此外,如果您没有在代码中的任何地方使用过,则不应该使用Register指令。 IMO我不认为Register指令导致了这个问题。