Сократите это выражение if в Razor на одну строку - PullRequest
21 голосов
/ 08 декабря 2011

Могу ли я сократить это до одной строки? Я пробовал разные способы, но не совсем правильно понял.

@if(SiteMap.CurrentNode.Title == "Contact")
{
    @:<div class="contact">
}

Ответы [ 3 ]

22 голосов
/ 08 декабря 2011

Возможно, есть еще более простое решение, но оно должно работать:

@Html.Raw((SiteMap.CurrentNode.Title == "Contact") ? "<div class='contact'>" : "")
13 голосов
/ 06 июня 2012

Другой способ будет:

@if(SiteMap.CurrentNode.Title == "Contact") { <text><div class="contact"></text> }

Лично я нахожу его более читаемым, чем троичный оператор, но это личное

9 голосов
/ 30 августа 2016

Самый короткий способ сделать это, как:

@(SiteMap.CurrentNode.Title == "Contact" ? "<div class='contact'>" : "")

или

@(SiteMap.CurrentNode.Title == "Contact" ? @"<div class=""contact"">" : "")

или даже короче, если вы не повторите свой HTML-код

<div class="@(SiteMap.CurrentNode.Title == "Contact" ? "contact" : "")">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...