Asp.net 命名Dom元素的Id属性的最佳实践

Asp.net 命名Dom元素的Id属性的最佳实践,asp.net,javascript,naming-conventions,Asp.net,Javascript,Naming Conventions,这与DOM元素的id属性和name属性的命名约定有关。说到JavaScript,根据我的理解和所做的工作,除了类的名称之外,它总是使用驼峰大小写。类的大小写为Pascal 话虽如此,我主要是在ASP.NET中开发的,在这里我遇到了id属性的命名问题。在ASP.NET中,如果您将一个新的服务器控件拖放到页面上(我很少这样做,我是一个标记类型的人),默认名称总是以Pascal大小写,因为它们需要符合服务器端代码的.NET framework命名准则 因此,在命名ASP.NET服务器控件的id属性或仅

这与DOM元素的id属性和name属性的命名约定有关。说到JavaScript,根据我的理解和所做的工作,除了类的名称之外,它总是使用驼峰大小写。类的大小写为Pascal

话虽如此,我主要是在ASP.NET中开发的,在这里我遇到了id属性的命名问题。在ASP.NET中,如果您将一个新的服务器控件拖放到页面上(我很少这样做,我是一个标记类型的人),默认名称总是以Pascal大小写,因为它们需要符合服务器端代码的.NET framework命名准则

因此,在命名ASP.NET服务器控件的id属性或仅命名标记中的元素时,我会按照规则对id属性(Javascript命名准则)进行简化,但这与.NET命名准则相冲突

那么,第一,您通常对DOM元素中的id属性使用什么样的大小写,第二,在ASP.NET中开发的.NET人员如何命名id属性

除此之外,当我在标记中创建表单元素时,我通常使用匈牙利符号作为文本输入,如

<input type="text" id="txtUserName" />

或者像这样的复选框

<input type="checkbox" id="chkSelectAll" />

这显然违反了.NET服务器端代码命名准则,也可能违反了JavaScript准则


非常感谢您的建议。

以下是一些命名准则,它们帮助我在DOM中使用ID和类:

  • 不要在名称中包含类型(即,没有txt或chk)。我可以使用CSS或jQuery更详细地选择这些信息
  • 在名称中使用下划线作为分隔符。连字符在其他语言中并不总是有效,而驼峰式大小写在标记中有点难读懂

我上一份工作中的一位HTML专家实际上建议用破折号分隔多单词ID

<input type="text" id="user-name" />

我很难记住为什么——我再也无法访问这些内部标准文档了。我知道这并不能回答你关于帕斯卡和骆驼皮的问题

我个人建议不要使用HN-我发现这在很大程度上是一种令人憎恶的做法。如果需要将复选框数组改为select元素,会发生什么情况?现在,元素的ID中嵌入了错误的语义。我觉得这不值得这么麻烦。

  • 保持语义。使用完整、简单(最好是英语)的单词。不要试图想出一些花哨或技术性的东西,不要描述它是什么——我们知道这一点。描述它的作用。描述目的增加了信息价值

  • 不要缩写任何东西
    BW_RCB01_SW
    对几年前为我们制作CSS的团队来说意味着什么,但现在对我来说却没有任何意义,我必须向后努力,尝试翻译
    BW_RCB01_SW
    与我的目的相对应的内容,并记住翻译内容或将其记录在某个地方。更好<代码>黑白框类型1-左下。它更长,但也不需要罗塞塔石

  • 保留所有小写字母,并使用下划线或连字符。我更喜欢连字符,但那完全是我的偏好。使用连字符不应该有任何障碍,因为它们在CSS或HTML中没有保留,ID在其他任何语言中都被视为文字字符串。小写是所有的经验-太多的时间浪费在想为什么这种风格不适用哦
    pageContainerLeft
    pageContainerLeft
    不同

  • 准确地确定该元素是什么,但不要更多。认真考虑你在姓名中嵌入的每一条信息,以及它是否必要。在您的示例中,您是否需要通过ID知道它是一个复选框?不大可能发生的您已经知道所引用的元素,因为它是唯一的ID,并且您必须针对该元素编写代码


    • 尽可能少地命名对象肯定有助于保持事物的整洁。如果你能说出父母的名字,只提到孩子,那会更好(在我看来)。您可以在每个页面上稍微减少向客户端呈现的html

      因为当我必须命名元素时,我更喜欢所有小写字母,带有下划线符号。我以前在CSS文件中没有正确地处理我的案例,这让我上当受骗了,所以如果我能早点把它算作一个问题的话,那就松了一口气

      下划线是字符,而破折号可以解释为负号,所以这是另一个潜在的问题——只使用下划线是有意义的。例如,Flex不接受属性以破折号命名的XML(我知道这些值不是属性,但仍然是一个安全的赌注)


      不过我同意上面的说法——没有元素类型、位置或颜色作为类/id。匈牙利符号==不好。确定什么是ID非常有用。我喜欢以特定于对象的方式命名表单字段-
      用户登录、用户电子邮件、用户地址、州ID、用户地址、国家ID
      等,可能都会显示在用户注册表上。通常非表单字段的长度不足以容纳下划线,否则您可能可以重命名它们。

      信不信由你,但在使用某些javascript库时,我遇到了使用连字符作为id名称和css类名的问题。这是非常罕见的,但你显然想避免这样的事情。因此,我使用驼峰大小写或下划线。也可以使用下划线

      否则,一般规则是要有易于阅读和理解的有意义的名称。当涉及到“控件”时,请确保遵循某种命名约定。就个人而言,我更喜欢后缀而不是前缀(即nameText而不是textName),但我尽量避免后缀,因为我发现它们太冗长了

      因此: 1.有意义的名字。 2.避免使用post-/前缀。 3.避免使用缩写(即地址而不是地址)。
      4.慢慢来。

      也许他建议用破折号是因为艾尔