我在 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(使用前将#替换为@)