Visual Studio 中的标记验证

在 Visual Studio Web 设计器中(对 Web 窗体页而言,在**“源”**视图中)编辑标记时,编辑器会检查标记是否有效。 标记验证的工作方式类似于字处理程序中的拼写检查器。 编辑器检查标记并在无效的元素或特性下添加红色波浪线。

编辑器根据当前选择的验证架构确定什么是有效的。 例如,如果将架构设置为 HTML5,则编辑器将页面中的标记与定义有效 HTML5 页的架构相比较。 如果将架构更改为 XHTML5,则编辑器针对 HTML5 架构来检查页面中的标记。

验证错误不会阻止页的运行。 它只向您提供页中的标记不符合所选标记语言的架构的反馈。

选择架构

Visual Studio 包括如 HTML5、XHTML5、HTML 4.01 和 XHTML 1.1 的标准的架构。 可让 Visual Studio 根据页面中的 DOCTYPE 值确定架构。 或者,可以从**“HTML 源编辑”工具栏中的下拉列表中选择架构。 也可以在“选项”**对话框中选择默认验证架构。

f940516c.collapse_all(zh-cn,VS.110).gif查看验证错误

编辑器通过以下方式向您显示验证错误:

  • 带下划线的元素 无效的元素或特性带有波浪下划线。

  • 工具提示 如果将鼠标指针放在带波浪下划线的元素上,工具提示将显示关于错误的详细信息。

  • 错误列表 如果打开**“错误列表”窗口,就可看到所有验证错误的列表(作为警告)。 若要打开“错误列表”窗口,请选择“视图”,然后选择“错误列表”。 若要从键盘打开列表,则键入 Ctrl + \,然后键入 E。 双击“错误列表”**窗口中的错误将直接转到编辑器中的该错误。

验证检查内容

标记验证检查以下内容:

  • 允许的标记 某些浏览器架构支持在其他浏览器架构中所不允许的标记。 例如,只有 Netscape 浏览器支持 <blink> 标记,因此此标记在其他架构中被标记为无效。

  • 允许的特性 验证检查元素中的特性是否为该元素所允许。

  • 必选特性 验证检查是否包括所有必选特性。 例如,在 XHTML 1.1 中,<script> 标记必须具有 type 特性。

  • 允许的特性值 如果特性只支持特定的枚举值(如 true 或 false),则验证标记任何与所允许的值不符的值。

  • 允许的 CSS 值 验证检查是否允许 style 特性的级联样式表 (CSS) 值。

  • 允许的子元素 验证检查给定父元素是否允许子元素。

  • 特性值左右引号的正确使用 根据架构的不同,特性值可能需要左右引号。 对于不需要引号的架构,验证会检查引号匹配(如果引号存在)。 当架构不要求在特性值的两侧加上引号时,可以配置 Visual Studio 是否检查这些引号。 请参见本主题中后面的“自定义验证”。

  • 大小写规则 根据架构的不同,元素和特性名称可能需要用小写字母表示。 如果架构允许在名称中使用大写字母或小写字母,则验证根据所设置的验证选项对它们进行检查。 请参见本主题中后面的“自定义验证”。

  • 唯一的元素 ID 验证确保元素 ID 在整个页中是唯一的。

  • 格式良好的元素 验证确认所有开始标记具有相应的结束标记(如果架构要求)。

  • 元素开始和结束顺序 验证检查您没有交叉开始和结束元素的顺序,如 <b><i>text</b></i>。

  • 过时的标记或特性 诸如 XHTML5 的架构把如 <font> 的标记标记为错误,以通知您已不再支持使用该标记。

  • 相对超链接和图形的有效目标 验证确认相对于当前站点的任何目标的有效性,但是它不检查完全限定 URL 的有效性。

验证页输出

验证检查设计器中的页的标记。 它不能保证当在浏览器中运行页时该页的输出将根据特定架构进行验证。 在处理页后,Web 窗体页的各 ASP.NET 服务器控件和该页自身将标记(有时还有脚本)呈现到页中。 在设计器中验证无法访问该输出。 运行时创建的标记和脚本对于大多数浏览器都是有效的。 ASP.NET 页和服务器控件呈现与 XHTML5 兼容的标记。 有关更多信息,请参见 Visual Studio 和 ASP.NET 中的 XHTML 标准

验证和 IntelliSense

指定架构不仅控制验证,而且还控制在 IntelliSense 中可用的标记和特性的列表。 例如,XHTML5 架构不提供 <font> 标记,因为在该架构中否决了 <font> 标记。

自定义验证

根据所使用的架构的不同,也许可以指定附加的验证选项。 例如,如果您使用的是 HTML5,您可以选择以下条件是否显示为错误:

  • 当客户端标记不是小写时

  • 当标记格式不正确时

  • 当特性值不带引号时

  • 当特性或元素已弃用时

验证多个命名空间

在网页中,可以包括使用标记块各自的命名空间进行声明的标记块。 例如,页面中嵌入的 XML 块可能包含自己元素的命名空间声明。 在这种情况下,验证基于当前页架构和嵌入的块的架构。

请参见

其他资源

Visual Studio 和 ASP.NET 中的 XHTML 标准