Элемент 'title' встречается слишком редко, предупреждение проверки XHTML на главной странице ASP.NET.MVC - PullRequest
5 голосов
/ 27 февраля 2009

На главной странице ASP.NET MVC появляется следующее предупреждение о проверке XHTML:

Проверка (XHTML 1.0 Transitional): элемент 'title' встречается слишком мало раз.

Тег заголовка для главной страницы включен в ContentPlaceHolder в теге заголовка, как показано в коде ниже. Тег title в ContentPlaceHolder не учитывается при выполнении проверки, и я не хочу просто добавлять еще один в тег head, потому что тогда у меня останутся два тега title.

<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>
<% } %>

Является ли это наилучшей практикой для устранения этого предупреждения? Я не большой поклонник добавления лишнего кода просто для того, чтобы передавать предупреждения проверки, но я буду жить с этим, если не будет лучшей альтернативы.

Ответы [ 2 ]

14 голосов
/ 27 февраля 2009

Сделайте это вместо:

<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>

Или, в качестве альтернативы, установите заголовок программы программно для каждой страницы.

В вашем случае происходит то, что при создании нового представления создаются пустые элементы содержимого, которые переопределяют содержимое по умолчанию в заполнителях. Если вы удалите пустые блоки содержимого из представления, будет использоваться содержимое заполнителя по умолчанию, но затем вы не сможете установить содержимое из представления. Используя приведенный выше код, вы можете переопределить заголовок по умолчанию для каждого представления и включать в заголовки сценарии и т. Д. Независимо друг от друга.

1 голос
/ 06 мая 2013

Здесь возможные решения Первое решение -

<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> - this line should be removed.
</asp:ContentPlaceHolder>

Второе решение, Проверьте, означает ли тег head , имеющий атрибут runat = "server" , если он не задан, runat prperty, не означает ли это проблем, иначе нужно удалить тег runat .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...