2014-03-27 58 views
0

我試圖在JSON字符串內使用Razor標記來處理MVC應用程序中的Infragistics GridView。是的,這是相當的解決方法,但它比重新編碼整個控制器能夠使用Infragistics數據綁定工具要好(特別是因爲我正在使用DB2而不是像MSSQL那樣)。JSON字符串中的Razor Html

不管怎樣,在我的意見之一,代碼如下:

<script type="text/javascript"> 
    var data = []; 

    var i = 0; 
    @foreach (var item in Model) 
     { 
      var width = item.count_primary/item.count_total; 
      <text> 
       data[i] = { 
        "omkt": '@item.omkt', "dmkt": '@item.dmkt', "ibu": '@item.ibu',    
        "count_total": '@item.count_total', "count_primary": '@item.count_primary', 
        "primary_ratio": '@item.count_primary'/'@item.count_total', 
        "primary_ratio_graph": "<td><div style=\"background-color:#00F;width:@width%;height:10px;border:1px solid #000;\"><\/td>" 
      }; 
      i++; 
     </text> 
    } 
... 

的問題是,在primary_ratio_graph線出現解析錯誤。我在所有引號上使用了轉義字符,但是我需要在其他任何地方使用轉義字符嗎?

回答

4

你正在逃避正斜槓。我不認爲你必須在你的td元素的結束標記上跳出正斜槓。試試這個:

"<td><div style=\"background-color:#00F;width:@width%;height:10px;border:1px solid #000;\"></td>"

+0

謝謝,工作。 – panoptical

+0

JavaScript與C#不同。單引號和雙引號都適用於字符串。你甚至不需要繞過你的風格的雙引號,你可以使用單引號。 – krillgar

+0

其實是因爲他在用剃刀。否則,最終會出現編譯時錯誤。請記住,剃鬚刀實際上是使用.net堆棧來創建視圖。它不是原始的HTML。 – kmacdonald