ASP.NET MVC 3.0 Условно написание встроенного текста в теге - PullRequest
1 голос
/ 27 марта 2011

У меня есть этот тег в моем меню

<li><a href="/">Home</a></li>

и я хотел вставить class = "selected" , если текущий контроллер был HomeController. Поэтому я изменил тег так, чтобы он выглядел следующим образом.

<li><a href="/" @if (ViewContext.Controller.ToString().EndsWith("HomeController")) { Response.Write("class=\"selected\""); }>Home</a></li>

Теперь я вижу, что class = &quot; selected &quot; появляется в верхней части страницы, а остальная часть разметки испорчена. Я просто хотел, чтобы тег выглядел так

<li><a href="/" class="selected">Home</a></li>

Если текущий контроллер является HomeController.

Есть идеи, что я сделал не так?

Спасибо!

1 Ответ

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

Попробуйте

<a href="/" @if (ViewContext.Controller.ToString().EndsWith("HomeController")) { <text>class="selected"</text> }>Home</a>

Razor кодирует все по умолчанию, если вы используете специальный тег <text>, он отображает содержимое как есть.

Вот краткое справочное руководство по синтаксису Razor: http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx

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