2014-04-15 84 views
0

在MVC 4中,我經常不得不將自己的C#輸出代碼包裝在HTML標籤中,以防止.NET引發錯誤。這很容易通過展示來解釋,因此代碼如下:避免在視圖內包裝HTML標籤中的東西

<li onclick="alert('@pub.URL');" data-jstree='{"icon":"@Url.Content("~/Images/blue-folder.png")"}'> 
    @if (pub.DescriptionLongerThan50Chars) 
    { 
    pub.DescriptionCropped 
    } 
    else 
    { 
    // 
    } 
</li> 

這會引發「僅分配,調用,增量..」錯誤。簡單的解決方案是在<span>中包裝pub.DescriptionCropped,但如果我不必這樣做,我寧可不要。

enter image description here

是否有辦法避免這種情況?

+1

可能重複:在代碼中顯示HTML塊](http://stackoverflow.com/questions/6602419/mvc3-razor-displaying-html-within-code-blocks) – Bobby5193

+0

是的,我認爲這是。我做了搜索,但似乎找不到合適的條款。 –

+0

我總是試圖弄清楚是否最好回答一個問題(比如這裏的人)並獲得聲望點,或者指出重複,並且什麼都不要。但這是爲了更好的SO。 – Bobby5193

回答

1

另一種解決方案是在前面加上「你行@:`

< li onclick="alert('@pub.URL');" data-jstree='{"icon":"@Url.Content("~/Images/blue-  folder.png")"}'> 

    @if (pub.DescriptionLongerThan50Chars) 
    { 
    @:pub.DescriptionCropped 
    } 
    else 
    { 
    // 
    } 
</li> 
1

可以顯示純文本剃刀這樣:

@if (pub.DescriptionLongerThan50Chars) 
    { 
    @:pub.DescriptionCropped // now it is rendered as html 
    } 
    else 
    { 
    // 
    } 
[MVC3剃刀