3

阅读TRULY UNDERSTANDING VIEWSTATE,作者建议:

当 ASP.NET 解析表单并找到带有 runat=server 的标记时,它会创建指定控件的实例。它分配给实例的变量名称是基于您分配给它的 ID(顺便说一下,许多人没有意识到您根本不需要给控件一个 ID,ASP.NET 将使用自动生成的 ID . 不指定 ID 有好处,但这是一个不同的主题)。

不指定控件 ID 可以获得哪些优势?我的快速搜索没有任何结果。谢谢您的帮助。

4

1 回答 1

1

如果不指定控件 ID,则无法访问控件并在代码隐藏文件中对其进行更改,因此它看起来像是页面上的常量控件。我不知道这是否是一个优势;我认为它只是一个很少使用的选项。

我能想到的唯一优势是,如果您有许多不想更改的图像,但您喜欢让 asp.net 处理图像路径。在这种情况下,最好不要指定控件 ID。

解析标记时,任何未设置为的控件runat="server"都将被视为常规文本,并分配给Text文本控件的属性。因此,他们的 ID 不会出现在页面中。在发布数据的其他控件中,如果不包含 ID,则控件通常仅使用名称(而不是 id)呈现。

此外,没有控件 id 的控件不会在带有控件的表上注册,并且在较小的表中搜索控件可能会更快。

于 2012-01-22T01:49:00.697 回答