将Razor中的if语句缩短为一行

时间:2011-12-07 21:53:09

标签: razor

我可以缩短到一行吗?我尝试了各种各样的方法,但不能完全正确。

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

4 个答案:

答案 0 :(得分:22)

可能有一个更简单的解决方案,但这应该有效:

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

答案 1 :(得分:13)

另一种方式是:

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

我个人觉得它比三元运算符更具可读性,但这是个人的

答案 2 :(得分:9)

最简单的方法是:

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

@(SiteMap.CurrentNode.Title == "Contact" ? @"<div class=""contact"">" : "")
如果你不重复你的HTML代码,那么

甚至更短

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

答案 3 :(得分:0)

这将起作用

剃刀语法

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