【问题标题】:ASP.NET C# Adding attribute to control - it comes out in lowercase?ASP.NET C# 向控件添加属性 - 它以小写形式出现?
【发布时间】:2014-08-06 17:52:01
【问题描述】:

我有一个 ListBox 控件:

<asp:ListBox runat="server" ID="lstBox" />

在后面的代码中,我使用以下代码:

int _maxListBoxSelection = 3;
lstBox.Attributes.Add("data-maximumSelectionSize", _maxListBoxSelection.ToString());

但是,当我检查 HTML 时,ListBox 被渲染为:

<select id="blah_lstBox" name="blah$lstBox" data-maximumselectionsize="3" />

好像和这里报道的差不多:How to prevent asp.net to make lowercase my custom attribute I placed in a server control

这是在 .NET 4.0 中,使用 Visual Studio 2010。

显然,这意味着要通过 JavaScript 访问这些,很高兴知道所有内容都将转换为小写。

那么,为什么 ASP.NET 将这些更改为小写?这种行为可以改变吗?

编辑添加

刚刚尝试使用非data 属性,ASP.NET 再次将这些更改为小写。因此,如果我添加 aCustomAttribute 它会更改为 acustomattribute - 这是预期的吗?

【问题讨论】:

  • 您是否检查了其他问题以及那里提到的问题?
  • 无论如何,您都应该使用 data-maximum-selection-size 作为属性而不是驼峰大小写。
  • 是的,这是 Visual Studio 上的设置 - 根据链接的问题,不涉及渲染输出。
  • @JanneMatikainen 我应该吗?请问您可以链接到这种情况的参考吗?
  • stackoverflow.com/questions/19533402/…,当然可以使用maximumselectionsize的命名,但是比maximum-selection-size更难解释

标签: c# asp.net visual-studio-2010


【解决方案1】:

这是“设计使然”的行为。来自XHTML Standards in Visual Studio and ASP.NET, MSDN, section "ASP.NET Features for XHTML Conformance":

标签和属性名称以小写形式呈现

所以这样做是为了符合 XHTML 标准。正如其他人所指出的,应该使用破折号而不是大小写来确保属性名称的可读性。

【讨论】:

    【解决方案2】:

    The HTML5 specification 限制使用小写

    HTML 文档中 HTML 元素的所有属性都以 ASCII 小写形式显示 自动

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-16
    • 1970-01-01
    • 2011-11-28
    • 2013-07-25
    • 1970-01-01
    • 2012-10-15
    • 2010-10-07
    • 1970-01-01
    相关资源
    最近更新 更多