C# GroupBy Knockout.js

C# GroupBy Knockout.js,c#,razor,knockout.js,group-by,C#,Razor,Knockout.js,Group By,我用C#编写了这个Razor代码,并尝试在Knockout中执行同样的操作 @foreach (var group in Model.Details.SonstigeNummern.OeReferenznummern.GroupBy(x => x.Hersteller)) { <tr class="ListItem @oddeven"> <td>

我用C#编写了这个Razor代码,并尝试在Knockout中执行同样的操作

 @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>
                }
@foreach(Model.Details.SonstigeNummern.oereferencenummern.GroupBy(x=>x.Hersteller)中的var组)
{
@组键
@foreach(组中的var nummer)
{ 
@努默。努默
} }
我不知道我怎样才能管理GroupBy

我的Viewmodel与我的c#model具有相同的语法

有人能帮忙吗


诚然,我不确定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>

var data=JSON.parse('@Html.Raw(JSON.Encode(Model.Details.sonstigenumern.oereferencenumern.GroupBy(x=>x.Hersteller).Select(g=>new{Key=g.Key,numers=g.ToArray()));
var vm={groups:data};
ko.应用绑定(vm);

我希望这会有所帮助。

请发布json数据。我很确定在客户端对数据进行分组会更好(更容易)。Knockout专门用于视图构建,因此您应该避免在服务器上构建视图。