В режиме Razor, как я могу вставить заголовок страницы без <? - PullRequest
1 голос
/ 10 апреля 2011

В моем макете ASP.NET MVC 3 Razor я хочу, чтобы заголовок моей страницы всегда был "Мой веб-сайт", а если установлен ViewBag.Title, я хочу добавить его к заголовку, используя дефис в качестве разделителя. Я хочу, чтобы этот код был в одной строке

Этот код не работает:

<title>My Website @if( string.IsNullOrEmpty( ViewBag.Title) == false){ - @ViewBag.Title}</title>

С

В блоке if отсутствует закрывающая "}" персонаж. Убедитесь, что у вас есть соответствующий символ "}" для всех символов "{" символы в этом блоке, и это ни один из символов "}" не выполняется интерпретируется как разметка.

Предположительно, потому что @: предполагает, что остальная часть строки является разметкой. Я не могу использовать тег span, чтобы помочь Razor, потому что заголовок браузера становится «My Website - span Home span».

Да, я могу разбить это на две или три строки, но я не хочу. Это работает, но это мой единственный вариант с Razor?

<title>My Website @if( string.IsNullOrEmpty( ViewBag.Title) == false){ @: - @ViewBag.Title
}</title>

Ответы [ 2 ]

4 голосов
/ 10 апреля 2011

Вам необходимо использовать псевдотег <text> .

<title>My Website @if(!string.IsNullOrEmpty(ViewBag.Title)) { <text>- @ViewBag.Title</text> }</title>
2 голосов
/ 10 апреля 2011

Я думаю, что вам нужно Разметка явного текста бритвы

 <title>My Website @if( string.IsNullOrEmpty( ViewBag.Title) == false){ <text>-</text> @ViewBag.Title}</title>
...