5

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

因为即使我没有调用控件,我的部分代码也会被执行,我发现当我进行性能分析时。

4

2 回答 2

7

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

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

2012 年 2 月 7 日编辑

如果你想摆脱注册指令,你总是可以使用 web.config - 按照这个Scottgu 帖子的说明进行操作。

于 2012-02-02T11:24:47.467 回答
1

Register 指令仅用于在前缀和控件之间创建关联。仅在以声明方式加载控件时才重要。只有这样才能使开发变得容易。

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

此外,如果您没有在代码中的任何地方使用过,则不应使用 Register 指令。IMO 我不认为 Register 指令导致了这个问题。

于 2012-02-02T10:50:05.550 回答