Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 始终拥有ID属性是否有好处?_Asp.net - Fatal编程技术网

Asp.net 始终拥有ID属性是否有好处?

Asp.net 始终拥有ID属性是否有好处?,asp.net,Asp.net,在asp.net中,包含或不包含id属性有什么好处吗?对于这个问题,假设我们不需要ID(我们既不是在代码隐藏中操作控件,也不是在客户机上操作控件)的编程原因 我个人的偏好是,只有当我有理由操纵控件并且需要能够引用它时,才包括Id属性。所以我发现自己总是移除Image1 Label1等 迄今为止的答复: 保留它们有助于辅助技术 保留它们有助于测试套件 删除它们可能会影响带宽 移除它们可以让您的intellisense更干净(刚刚添加了这个) 摘自() “在服务器上设置此属性(ID) 控件为您提供了

在asp.net中,包含或不包含id属性有什么好处吗?对于这个问题,假设我们不需要ID(我们既不是在代码隐藏中操作控件,也不是在客户机上操作控件)的编程原因

我个人的偏好是,只有当我有理由操纵控件并且需要能够引用它时,才包括Id属性。所以我发现自己总是移除Image1 Label1等

迄今为止的答复:
  • 保留它们有助于辅助技术
  • 保留它们有助于测试套件
  • 删除它们可能会影响带宽
  • 移除它们可以让您的intellisense更干净(刚刚添加了这个)
  • 摘自()

    “在服务器上设置此属性(ID) 控件为您提供了可编程的 访问服务器控件的 属性、事件和方法。此 属性可以由Web开发人员设置 通过在 ASP.NET服务器的打开标记 控件。如果此属性不是 为服务器控件指定,或者 通过声明或编程方式,您可以 可以获取控件的引用 通过其父控件的控件 财产。”


    因此,看起来ID属性是为通过代码访问控件而提供的。但是,您仍然可以通过代码访问没有ID属性的控件。

    确实,ID存在的唯一原因是为了获得单个对象的句柄,但是删除VisualStudio为您创建的自动分配ID肯定没有任何好处


    你永远不知道什么时候你可以输入一个ID,所以如果没有其他内容,我至少建议保留默认值。

    具有ID属性对于使用Quick Test Pro等工具测试你的页面非常有用。对于使用屏幕阅读工具浏览的盲人用户来说,它们也非常有用

    有一个很好的Hanselminutes播客讨论了这一点:

    基本上,每当您想从服务器端引用控件时,都需要id。您执行的大多数绑定任务都在服务器端。这包括绑定到GridView控件。将消息分配给标签控件等

    如果您没有在代码隐藏中使用控件,那么您可以省略id。但我始终建议为所有控件提供有意义的id


    如果不分配id并添加id为“Button1”的控件,则有一个更改,这将与已添加的无id按钮冲突。

    手动编写HTML时,除非需要,否则我不会在任何内容上包含id。 对于高负载站点,如果不存在带宽,则使用的带宽更少。
    考虑到人们通过主要工作来移除CSS和JS文件中的空白和注释(通常在构建时),我会考虑删除未使用的ID标签进入同一条船。另外,如果没有ID,我会假设浏览器要做的DOM构建工作更少。这一切加起来会加快页面传输和呈现时间,这从长远来看是如此

    当您试图在浏览器上查看生成的代码时(您有时需要这样做,至少我需要这样做),服务器控件上的这些ID也会有所帮助。例如,我称之为tbLastName的某些文本框将被转换为类似ctl001的内容。我宁愿强迫自己或其他开发人员添加有用的id。我的第一个程序(校外)是VB6 exe。我继承它的那个家伙拥有Label1、Label2等所有东西。更糟糕的是,他改变了基础类型,但保持了名称不变。Label1=textbox hehi从来没有想过其他援助技术,我也没有,直到我听了那个播客;)我是这样想的。