我在ASP.NET MVC母版页中收到以下XHTML验证警告:
验证(XHTML 1.0 Transitional):元素'标题'出现的次数太少.
母版页的标题标记包含在head标记的ContentPlaceHolder中,如下面的代码所示.执行验证时不考虑ContentPlaceHolder中的title标记,我不想在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>
Run Code Online (Sandbox Code Playgroud)
我找到的一个解决方法是在head标签中使用以下技术:
<% if (false) { %>
<title></title>
<% } %>
Run Code Online (Sandbox Code Playgroud)
这是解决此警告的最佳做法吗?我不是为了传递验证警告而添加多余代码的忠实粉丝,但如果没有更好的选择,我会忍受它.
Joh*_*han 14
改为:
<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>
Run Code Online (Sandbox Code Playgroud)
或者作为替代,从每个页面以编程方式设置标题.
在您的情况下发生的情况是,创建新视图时,它会创建空内容项,这些内容项将覆盖占位符中的默认内容.如果从视图中删除空的内容块,将使用默认的占位符内容,但是您无法从视图中设置内容.使用上面的代码,您可以覆盖每个视图中的默认标题,并在头部中包含脚本等,彼此独立.