Любопытная проблема с ContentPlaceHolder в теге HTML Title на главной странице (MVC2) - PullRequest
7 голосов
/ 17 августа 2010

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

У меня есть главная страница с этим:

<head runat="server">
    <title>
       <asp:ContentPlaceHolder ID="TitleContent" runat="server" /> - Company
    </title>
</head>

Это просто HTML-код по умолчанию, вставленный VS при создании мастер-страницы, я просто добавил «- Company» в конце, чтобы мне не приходилось повторять этот текст при каждом просмотре.

На просмотрах у меня, например, так:

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Some title for the view
</asp:Content>

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

<title>Some title for the View - Company</title>

Я получаю:

<title>Some title for the View</title>

Почему?

Ответы [ 3 ]

5 голосов
/ 18 ноября 2010

Кажется, что это странная штука о том, как работает Classic ASP.Net (он же WebForms). Фил взломан на заголовках и главных страницах - отличное чтение.

Хотя он углубляется в причины, по которым он работает так, как работает, похоже, он не имеет в виду конкретно MVC. Первый комментарий Эрика Портера содержит сумасшедшее простое решение:

Изменение

<head runat="server">

до

<head>

Тада, исправлено.

3 голосов
/ 18 ноября 2010

Попробуйте это внутри тега заголовка:

<asp:ContentPlaceHolder ID="TitleContent" runat="server" /><%= " - Company" %>

Я столкнулся с этим некоторое время назад, и помещение литерала в блок кода очистило его. Я не совсем уверен, почему, если у кого-то есть объяснение.

0 голосов
/ 17 августа 2010

Вы дважды закрыли тег заголовка.Кроме того, постарайтесь, чтобы ContentPlaceHolder не закрывался самостоятельно.

В MVC я не помню, чтобы когда-либо использовался ContentPlaceHolder.Я строго набираю свою главную страницу и заполняю главную страницу таким образом.

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