【问题标题】:Visual Studio thinks empty HTML5 tags should end with a slash in ASPVisual Studio 认为空的 HTML5 标签在 ASP 中应该以斜线结尾
【发布时间】:2016-04-19 13:33:46
【问题描述】:

当使用 Visual Studio 2013 或 2015(任何版本)并使用以 .asp.aspx 结尾的文件时,它总是会显示警告 Empty elements such as 'input' must end with />. 即使我将编辑器的文档类型从HTML5 到 HTML 4.01。我相信编辑器在打开这些文件时会进入“HTML(Web 表单)”模式。

使用.html 扩展名处理同一个文件时,不会发生这种情况,事实上,无论如何我都无法在此模式下更改编辑器的文档类型。

任何人都可以找到解决此问题的方法,还是我应该将其作为错误报告给 MS?

PS。这个问题和Visual Studio uses XHTML tag closing for HTML5 tags不一样。

编辑:下面的示例代码。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Test</title>
</head>
<body>
    <form method="post" action="?" class="form-horizontal">
        <div class="form-group">
            <label class="col-sm-4 control-label" for="test">Test<span class="required-field">*</span></label>
            <div class="col-sm-8">
                <input class="form-control" type="text" maxlength="100" id="test" name="test" size="40" value="1" required>
            </div>
        </div>
    </form>
</body>
</html>

编辑 2:在编辑 HTML 的文本编辑器选项时,有一个名为 Formatting 的小节可让您选择打开/关闭 XHTML 编码样式,但 HTML(Web 表单)没有这样的设置。

此外,HTML(Web 表单)具有“标签特定选项”窗口,但即使将“输入”上的结束标签设置为“无结束标签”,问题仍然存在。

【问题讨论】:

标签: html visual-studio visual-studio-2015


【解决方案1】:

我对该问题进行了一些研究,我的结论是它确实是markup validation 中的一个错误。

HTML5 不要求 input 有一个结束字符,并且验证的变化确实发生了,因为使用 XHTML 文档类型也会显示元标记的警告,而不仅仅是输入。

当使用 Open With 打开 aspx 文件时,可以看到几个默认编辑器。默认为“Web 表单编辑器”,但可以选择“HTML 编辑器”(不推荐,因为它不理解指令)以及“HTML(Web 表单)编辑器”,您可以将其中任何一个设置为默认值。

我试图通过更改“C:\Program Files\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\Schemas\1033\HTML\html.xsd”来查看是否可以更改内容(查找vs:description="83",输入元素的id),乍一看似乎只用于智能感知和自动补全。

我认为输入和元之间的区别在于输入应该是可以成为服务器标签的标签。可能将其作为普通标签处理会成为问题。

除了在“C:\Program Files\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\Editors\”中反汇编编辑器之外,我看不到其他调查方向。奇怪的是,我还没有在网络上的其他地方看到过这样的报道。

【讨论】:

  • 感谢您验证问题和研究。我已向 Microsoft 发送了错误报告,如果他们确认(或一周后不回复,这更有可能),我将接受您的调查结果。
  • Microsoft 表示已创建票证,但此后没有任何消息,正如预期的那样。有我的+15。 :)
猜你喜欢
  • 2010-11-05
  • 1970-01-01
  • 2021-11-06
  • 2011-10-28
  • 1970-01-01
  • 2014-10-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多