我可以將此縮短爲一行嗎?我嘗試了各種方法,但不能完全正確。如果在剃刀中的語句縮短爲一行,則縮短此操作
@if(SiteMap.CurrentNode.Title == "Contact")
{
@:<div class="contact">
}
我可以將此縮短爲一行嗎?我嘗試了各種方法,但不能完全正確。如果在剃刀中的語句縮短爲一行,則縮短此操作
@if(SiteMap.CurrentNode.Title == "Contact")
{
@:<div class="contact">
}
有可能是一個更簡單的解決方案,但是這應該工作:
@Html.Raw((SiteMap.CurrentNode.Title == "Contact") ? "<div class='contact'>" : "")
小心使用Html.Raw,不會對輸出進行編碼! –
另一種方法是:
@if(SiteMap.CurrentNode.Title == "Contact") { <text><div class="contact"></text> }
我個人覺得比三元運算符的可讀性,但這是個人的
我也喜歡這一個的可讀性,但唯一的問題是,當你在Visual Studio中打CTRL K + D時,它會將它下降到3行:( –
最短的可能的方法是:
@(SiteMap.CurrentNode.Title == "Contact" ? "<div class='contact'>" : "")
或
@(SiteMap.CurrentNode.Title == "Contact" ? @"<div class=""contact"">" : "")
,甚至更短,如果你不重複的HTML代碼
<div class="@(SiteMap.CurrentNode.Title == "Contact" ? "contact" : "")">
有可能是一個更好的方式來做到這一點沒有不平衡的標記。請顯示更多代碼。 – SLaks
這是我想縮短的if語句。其他代碼是不相關的。 – Todd
錯了。這個if語句是糟糕的設計。給出其他代碼,我們可以展示如何更好地設計它。 – SLaks