Asp.net web api ASP.NET Web API自定义帮助页

Asp.net web api ASP.NET Web API自定义帮助页,asp.net-web-api,Asp.net Web Api,我注意到,web API在帮助页面中并没有按任何特定顺序(或至少按API名称)排序。如果可能的话,我想按名称分类订购。无法在ToLookup上很好地使用OrderBy。以下是默认情况下附带的代码: @{ // Group APIs by controller ILookup<string, ApiDescription> apiGroups = Model.ToLookup(api => api.ActionDescriptor.ControllerDescriptor

我注意到,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>
@{
//按控制器分组API
ILookup apiGroups=Model.ToLookup(api=>api.ActionDescriptor.ControllerDescriptor.ControllerName);
}
@foreach(apiGroups中的var组)
{
@DisplayFor(m=>group,“ApiGroup”)
}
循环中的顺序:

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

@foreach(apiGroups.OrderBy(x=>x.Key)中的var组)
{
@DisplayFor(m=>group,“ApiGroup”)
}
ILookup apiGroups=Model.OrderBy(d=>d.ActionDescriptor.ControllerDescriptor.ControllerName).ToLookup(api=>api.ActionDescriptor.ControllerDescriptor.ControllerName);

上述答案几乎是正确的,只需在最后关闭控制器名称即可

ILookup<HttpControllerDescriptor, ApiDescription> apiGroups = Model.OrderBy(d => d.ActionDescriptor.ControllerDescriptor.ControllerName).ToLookup(api => api.ActionDescriptor.ControllerDescriptor);
ILookup apiGroups=Model.OrderBy(d=>d.ActionDescriptor.ControllerDescriptor.ControllerName).ToLookup(api=>api.ActionDescriptor.ControllerDescriptor);
我测试过了,现在一切正常

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