Ответ 1
Может быть даже более простое решение, но это должно работать:
@Html.Raw((SiteMap.CurrentNode.Title == "Contact") ? "<div class='contact'>" : "")
Можно ли сократить это до одной строки? Я пробовал разные способы, но не вполне понимаю.
@if(SiteMap.CurrentNode.Title == "Contact")
{
@:<div class="contact">
}
Может быть даже более простое решение, но это должно работать:
@Html.Raw((SiteMap.CurrentNode.Title == "Contact") ? "<div class='contact'>" : "")
Другой способ:
@if(SiteMap.CurrentNode.Title == "Contact") { <text><div class="contact"></text> }
Я лично считаю его более читаемым, чем тернарный оператор, но это личное
Самый короткий способ сделать это:
@(SiteMap.CurrentNode.Title == "Contact" ? "<div class='contact'>" : "")
или
@(SiteMap.CurrentNode.Title == "Contact" ? @"<div class=""contact"">" : "")
или даже короче, если вы не повторяете свой HTML-код
<div class="@(SiteMap.CurrentNode.Title == "Contact" ? "contact" : "")">
Это будет работать
Синтаксис бритвы
@(SiteMap.CurrentNode.Title == "Contact" ? "<div class='contact'>")