Зарегистрированный знак не отображается при использовании @ Page.Title! - PullRequest
2 голосов
/ 28 марта 2011

Я использую WebMatrix (как будто я зависим от него) для нового сайта (ну, это просто новая версия существующего сайта), и у меня есть это:

_SiteLayout.cshtml:

@{
   <!DOCTYPE html>
   <html>
    <head>
     <meta charset="utf-8" />
     <title>@Page.Title</title>
    </head>
    <body>@RenderBody()</body>
   </html>
}

и ...

Default.cshtml:

@{
   Layout = "~/_SiteLayout.cshtml";
   Page.Title = "SexyDomainManager&reg;";
}
<p>Etc</p>

Что должно сделать заголовок страницы похожим на это:

SexyDomainManager & рег;

Однако это не так. Вместо этого вы можете увидеть &reg; в заголовке. Это происходит только тогда, когда я использую @Page.Title. Зачем? И как мне это исправить?

Ответы [ 2 ]

1 голос
/ 28 марта 2011

Razor автоматически закодирует HTML для вас (поэтому вы не видите символ).

Вы можете поместить символ непосредственно в вашу строку или использовать метод Html.Raw для возврата необработанной строки:

<title>@Html.Raw(Page.Title)</title>
0 голосов
/ 28 марта 2011

Я не знаю "WebMatrix", но он, очевидно, HTML кодирует значения, прежде чем включать их в вывод, так что разработчик (вы) не нужно, что является правильным поведением для веб-фреймворка.

Итак, если в заголовке указано «®», напишите «®»:

Page.Title = "SexyDomainManager®";
...