2011-02-28 51 views
4

我有一些標籤,我想說「如果它們當前位於該標籤引用的頁面上,請將其作爲一個跨度,否則,請將其作爲鏈接。」在僞利刃,應該是這樣的:Razor中的條件鏈接

@if(CurrentlyOnThisPage) { 
    <span> 
} else { 
    <a> 
} 
    Tab Content 
@if(CurrentlyOnThisPage){ 
    </span> 
} else { 
    </a> 
} 

剃刀(正確)指出,我不關閉我的開始標記,所以有困難解析此語法。如果標籤內容很小,我可以使用Html.ActionLink,但我有幾行內容,我想保留HTML編輯器的好處,而不是將它們全部放入字符串中。有沒有辦法做到這一點?

回答

4

這樣的事情呢?

@{ 
    var linkOrSpan= CurrentlyOnThisPage ? "span" : "a"; 
} 

<@linkOrSpan><text>Tab Content</text></@linkOrSpan> 

沒有關於關閉標籤的錯誤。

看起來也有點乾淨ihmo。

HTH

7

你可以寫標籤作爲文字文本,以防止剃刀從它們解析:

@:<span> 
2

或者只是把它寫出來明確:

@if(CurrentlyOnThisPage) 
{ 
    <span>tabcontent</span> 
} else { 
    <a>tabcontent</a> 
}