Visual Studio认为空的HTML5标记应在ASP中以斜杠结尾

Bof*_*ain 5 html5 visual-studio visual-studio-2015

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

HTML5屏幕截图

HTML 4.01屏幕截图

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

谁能找到解决此问题的方法,还是应该将其作为错误报告给MS?

PS。这个问题与Visual Studio使用XHTML标签关闭HTML5标签不同

编辑:下面的示例代码。

<!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>
Run Code Online (Sandbox Code Playgroud)

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

HTML编码风格

此外,HTML(Web窗体)具有“标记特定选项”窗口,但是即使将“输入”上的结束标记设置为“无结束标记”,仍然会出现此问题。

标签特定选项

Sid*_*dex 3

我对这个问题进行了一些研究,我的结论是,这确实是标记验证中的一个错误。

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

使用“打开方式”打开 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\”中的反汇编编辑器之外,我没有看到其他调查方向。奇怪的是,我没有在网络上的其他地方看到过这一报道。