2014-01-16 34 views
2

我有以下代碼:如果在一行包括HTML語句裏面

 <th class=" 
      @if(@Request.QueryString["desc"].AsBool()){ @:table-desc } 
      @if(@Request.QueryString["desc"].AsBool()){ @:table-desc } 
     " width="100%" @Html.SortTableClickEvent(@Request.Path, "Name", Convert.ToBoolean(@Request.QueryString["desc"]))> 
      Name 
     </th> 

它不喜歡的@if語句全部爲在一行中,「@:表說明」認爲,右括號「}」是html的一部分。

任何想法如何解決這個問題?

Parser Error Message: The if block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup. 
+0

只是包裹在HTML''應該工作,而不是'@:'的簡寫。這是不可接受的嗎? –

回答

0

使用

<th class="@Request.QueryString["desc"].AsBool()?table-desc:table-desc"..... 

或者使用類似下面,我在我的應用程序已經實現了嘗試

<th class="@if (Request.QueryString["desc"].AsBool()) 
      {<text>trueclass</text>} 
      else  
      {text>falseclass</text>}" > 
+0

很酷,我喜歡它......但是如果else語句是空的,那麼如果它是desc,那麼輸出「table-desc,否則不會輸出任何內容......如果我在其中放入一個空字符串,那麼squigglywigglies – Jimmyt1988

+0

沒有得到你!!!( –

+0

)如果我不想輸出什麼,如果它是假的...這樣的事情,但這不起作用: Jimmyt1988

2

你想打印一個字符串,那麼:

@if(@Request.QueryString["desc"].AsBool()){ @":table-desc" } 

你也可以把它粘在一個變量:

@{ 
    var sortClass = Request.QueryString["desc"].AsBool() 
     ? "table-desc" 
     : "table-asc"; 
} 

<th class="@sortClass"> 
+0

這樣更合適..但對我的上下文來說不是一個好的解決方案(儘管你不知道當回答..)謝謝,學到了新的東西! – Jimmyt1988