元素“标题”出现次数太少,ASP.NET.MVC 母版页中出现 XHTML 验证警告

2024-02-11

我在 ASP.NET MVC 母版页中收到以下 XHTML 验证警告:

验证(XHTML 1.0 Transitional):元素“title”出现的次数太少。

母版页的标题标签包含在 head 标签的 ContentPlaceHolder 中,如下面的代码所示。执行验证时不会考虑 ContentPlaceHolder 中的标题标签,并且我不想在 head 标签中添加另一个标题标签,因为那样我将留下两个标题标签。

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <asp:ContentPlaceHolder ID="head" runat="server">
        <title></title>
    </asp:ContentPlaceHolder>
</head>

我发现的一种解决方法是在 head 标签中使用以下技术:

<% if (false) { %>
    <title></title>
<% } %>

这是解决此警告的最佳实践吗?我不太热衷于添加多余的代码只是为了通过验证警告,但如果没有更好的选择,我会接受它。


改为这样做:

<head>
    <title><asp:ContentPlaceHolder ID="title" runat="server">Default Page Title Here</asp:ContentPlaceHolder></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <asp:ContentPlaceHolder ID="head" runat="server"></asp:ContentPlaceHolder>
</head>

或者作为替代方案,以编程方式从每个页面设置标题。

在您的情况下发生的情况是,当创建新视图时,它会创建空内容项,这些内容项会覆盖占位符中的默认内容。如果您从视图中删除空内容块,则将使用默认占位符内容,但您无法从视图中设置内容。使用上面的代码,您可以覆盖每个视图的默认标题,并在头部相互独立地包含脚本等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

元素“标题”出现次数太少,ASP.NET.MVC 母版页中出现 XHTML 验证警告 的相关文章

随机推荐