5

我注意到,Web API 在帮助页面中没有按任何特定顺序(或至少按 API 名称)排序。如果可能的话,我想按名称类别订购。无法很好地在 ToLookup 上使用 OrderBy。这是它默认附带的代码:

@{

 // Group APIs by controller
  ILookup<string, ApiDescription> apiGroups = Model.ToLookup(api => api.ActionDescriptor.ControllerDescriptor.ControllerName);
 }


<div>                    
   <section>
    @foreach (var group in apiGroups)
    {
        @Html.DisplayFor(m => group, "ApiGroup")
    }
   </section>
</div>
4

3 回答 3

9

上面的答案几乎是正确的,它只需要最后关闭控制器名称。

ILookup<HttpControllerDescriptor, ApiDescription> apiGroups = Model.OrderBy(d => d.ActionDescriptor.ControllerDescriptor.ControllerName).ToLookup(api => api.ActionDescriptor.ControllerDescriptor);

我测试了它,现在一切正常。

于 2014-03-14T21:10:17.230 回答
4

循环中的顺序:

<div>                    
   <section>
    @foreach (var group in apiGroups.OrderBy(x => x.Key))
    {
        @Html.DisplayFor(m => group, "ApiGroup")
    }
   </section>
</div>
于 2013-10-04T17:12:40.923 回答
0
ILookup<string, ApiDescription> apiGroups = Model.OrderBy(d => d.ActionDescriptor.ControllerDescriptor.ControllerName).ToLookup(api => api.ActionDescriptor.ControllerDescriptor.ControllerName);
于 2014-03-05T16:24:42.863 回答