2013-10-04 126 views
5

我注意到,Web API没有按照任何特定顺序(或者至少通过API名称)在帮助页面中排序。如果可能的话,我想按名称命名。无法很好地在ToLookup上使用OrderBy。下面是它在默认情况下自带的代码:ASP.NET Web API自定义帮助页面

@{ 

// 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

秩序循环:

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

布拉沃,正好工作。谢谢。 – xtrip

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

以上的答案是差不多吧,它只是需要controllername关上结束。

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

我测试了它,现在所有的作品。

相关问题