Почему asp: ContentPlaceHolder в заголовке заменяет весь заголовок? - PullRequest
3 голосов
/ 23 июня 2009

Использование ASP.Net MVC на моем сайте. У меня есть:

<head runat="server">
    <title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /> - MySite</title>
    <link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
</head>

тогда на каждом просмотре у меня есть что-то вроде:

<asp:Content ID="Title" ContentPlaceHolderID="TitleContent" runat="server">
    Home
</asp:Content>

и я ожидал, в результате:

 <title>Home - MySite</title>

но вместо этого у меня есть:

 <title>Home</title>

Есть идеи, почему?

Ответы [ 5 ]

7 голосов
/ 23 июня 2009

Используйте это:

<title>
  <asp:ContentPlaceHolder ID="titleContent" runat="server" />
  <%= "- My Site" %>
</title>

Причина в том, что все визуализированное в голове отображается как элемент управления.

См. Этот вопрос для получения дополнительных ссылок и других способов его решения.

1 голос
/ 23 июня 2009

У вас может быть атрибут Title в директиве <% @ Page%>.

0 голосов
/ 23 июня 2009

Я использую эту разметку в файле Site.Master:

<title>
    <asp:ContentPlaceHolder ID="TitleContent" runat="server" />
    <asp:Literal runat="server" Text=" - MySite" />
</title>

Это похоже на предложение boymc .

0 голосов
/ 23 июня 2009

Вы пытались извлечь бит runat="server" из тега head? У меня нет машины для тестирования прямо сейчас, но это выглядит немного странно для меня.

0 голосов
/ 23 июня 2009

проводной У меня была та же проблема, и я в конечном итоге использовать этот формат

   <title><%= Html.Encode(ViewData["Title"])  %> - mysite</title> 

таким образом заголовок контролируется через контроллер

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