2013-05-27 21 views
0

我在C#這種剃刀代碼,並嘗試做相同的淘汰賽的GroupBy Knockout.js

@foreach (var group in Model.Details.SonstigeNummern.OeReferenznummern.GroupBy(x => x.Hersteller)) 
       { 
        <tr class="ListItem @oddeven"> 
         <td>@group.Key</td> 
         <td> 
          @foreach (var nummer in group) 
          { 
           @nummer.Nummer<br /> 
          } 
         </td> 
        </tr> 
       } 

我不知道我怎麼能管理的GroupBy。

我的視圖模型具有相同的語法,我的C#模型

有人可以有幫助呢?

Sincerly

+1

請張貼json數據 – Anders

+0

我敢肯定,它會更好(更容易)在客戶端上分組數據。淘汰賽專門針對建築視圖,因此您應該避免在服務器上構建視圖。 – Tomalak

回答

2

我不確定linq查詢。但我認爲你應該這樣做。 正如你所看到的,我只是將所有數據轉換爲數組,然後轉換爲JSON字符串。 而在這個客戶端,我將它們重新轉換爲javascript對象。

<table data-bind="foreach: groups"> 
    <tr class="ListItem @oddeven" > 
     <td data-bind="value: Key"></td> 
     <td data-bind="foreach: Nummers"> 
      <span data-bind="text: $data"></span> 
     </td> 
    </tr> 
</table> 



<script type="text/javascript"> 
    var data= JSON.parse('@Html.Raw(Json.Encode(Model.Details.SonstigeNummern.OeReferenznummern.GroupBy(x => x.Hersteller).Select(g => new {Key = g.Key, Nummers = g.ToArray()}).ToArray()))'); 
    var vm = { groups: data}; 
    ko.applyBindings(vm); 
</script> 

我希望它有幫助。