Visual Web Developer 中的标记验证

更新:2007 年 11 月

在 Visual Studio Web 设计器的“源”视图中编辑标记时,编辑器会不断检查所创建的标记是否有效。标记验证的工作方式类似于字处理程序中的拼写检查器。编辑器检查标记并在无效的元素或属性下添加红色波浪线。

编辑器根据当前选择的验证架构确定什么是有效的。例如,如果已将当前浏览器设置为 Internet Explorer 6,则编辑器将页中的标记与定义 Internet Explorer 6 视为有效 HTML 的架构相比较。Internet Explorer 6 不要求标记属性左右带引号。因此,在下面的代码示例中编辑器并不标记 text 属性。

<asp:button runat="server" id="button1" text=Button1 />

与此相反,如果将当前浏览器架构更改为 XHTML 1.0 Transitional,则编辑器将标记文本属性的值,因为 XHTML 要求所有属性都在引号内。

验证错误不会阻止页的运行。它只向您提供页中的标记不符合当前浏览器架构的反馈。

选择浏览器架构

Visual Studio 包括常用浏览器(如 Netscape Navigator 和 Internet Explorer)和常用标准(如 XHTML Transitional 1.0)的架构。可从**“HTML 源编辑”工具栏中的下拉列表中选择架构。或者,可在“选项”**对话框中选择验证架构。有关详细信息,请参见 如何:为 Visual Web Developer 中的 HTML 编辑选择验证架构

查看验证错误

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

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

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

  • 错误列表 如果打开**“错误列表”窗口,就可看到所有验证错误的列表。双击“错误列表”**窗口中的错误将直接转到编辑器中的该错误。

验证检查内容

标记验证检查以下内容:

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

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

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

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

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

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

  • 属性值左右引号的正确使用 根据架构的不同,属性值可能需要左右引号。对于不需要引号的架构,验证检查值是否括在对称的引号中。对于引号可选的架构,验证根据所设置的验证选项对它们进行检查。请参见本主题中后面的“自定义验证”。

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

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

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

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

  • 过时的标记或属性 诸如 XHTML 1.0 Transitional 的架构将把如 <font> 的标记标记为错误,以通知您已不再推荐使用该标记。

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

验证和生成

验证是不同于生成的操作。在设计器中工作时,Visual Studio 向页添加或生成标记。由设计器创建的标记并不取决于当前浏览器架构。实际上,Visual Studio 中的网页设计器始终生成 XHTML 1.1 兼容的标记。有关详细信息,请参见 Visual Web Developer 中的 XHTML

验证页输出

验证检查设计器中的页的标记。它不能保证当在浏览器中运行页时该页的输出将根据特定架构进行验证。在处理页后,各 ASP.NET 服务器控件和该页自身将标记(有时还有脚本)呈现到页中。在设计器中验证无法访问该输出。

运行时创建的标记和脚本对于大多数浏览器都将是有效的。ASP.NET 页和服务器控件呈现 XHTML 1.1 兼容的标记。现在大多数浏览器针对于标准而不是支持浏览器特定的标记,特别是 XHTML。因为 XHTML 输出与大多数浏览器兼容,所以在运行时由页或控件呈现的标记将是有效的。

有关更多信息,请参见 ASP.NET 和 XHTML

验证和 IntelliSense

指定目标浏览器不仅控制验证,而且还控制在 IntelliSense 中可用的标记和属性的列表。例如,Internet Explorer 3.02 架构不提供样式属性,因为 Internet Explorer 3.02 不支持样式属性。类似地,XHTML 1.0 Transitional 架构不提供 <font> 标记,因为在 XHTML 中否决了 <font> 标记。

自定义验证

根据所使用的浏览器架构的不同,也许可以指定附加的验证选项。例如,如果正在使用 Internet Explorer 6 架构,则可选择验证是否标记不为小写字母的元素和属性名称。有关详细信息,请参见 如何:为 Visual Web Developer 中的 HTML 编辑设置验证选项

禁用验证

如果不想使用验证,可以关闭它。有关详细信息,请参见 如何:为 Visual Web Developer 中的 HTML 编辑设置验证选项

验证多个命名空间

在网页中,可以包括使用标记块各自的命名空间声明的标记块。例如,ASP.NET 网页可以包括嵌入的 XML 块,该嵌入的 XML 块包括定义 XML 元素的命名空间的声明。在这种情况下,验证基于当前页架构和嵌入的块的命名空间的联合。

请参见

任务

如何:为 Visual Web Developer 中的 HTML 编辑选择验证架构

概念

ASP.NET 和 XHTML