Подтвердить что ты не робот

Сократите это утверждение if в Razor до одной строки

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

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

Ответ 1

Может быть даже более простое решение, но это должно работать:

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

Ответ 2

Другой способ:

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

Я лично считаю его более читаемым, чем тернарный оператор, но это личное

Ответ 3

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

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

или

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

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

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

Ответ 4

Это будет работать

Синтаксис бритвы

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