Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# web api 2帮助页中的排序控制器_C#_Asp.net Web Api2 - Fatal编程技术网

C# web api 2帮助页中的排序控制器

C# web api 2帮助页中的排序控制器,c#,asp.net-web-api2,C#,Asp.net Web Api2,可以在“帮助”页面中对控制器进行排序吗?我不想按名称排序,但我想选择在帮助页面中首先显示哪个控制器 感谢您的帮助请查看下面的链接。您可以通过转到Areas\HelpPage\Views\help来修改帮助页面 要修改初始帮助页面,可以相应地更改Index.cshtml文件中的代码 所以,这已经有一百万年的历史了,但如果对任何人都有用的话,这似乎是可行的: 创建自定义属性 public class ControllerHelpIndexAttribute : Attribute { pub

可以在“帮助”页面中对控制器进行排序吗?我不想按名称排序,但我想选择在帮助页面中首先显示哪个控制器


感谢您的帮助

请查看下面的链接。您可以通过转到Areas\HelpPage\Views\help来修改帮助页面

要修改初始帮助页面,可以相应地更改Index.cshtml文件中的代码


所以,这已经有一百万年的历史了,但如果对任何人都有用的话,这似乎是可行的:

  • 创建自定义属性

    public class ControllerHelpIndexAttribute : Attribute
    {
        public ControllerHelpIndexAttribute(int index)
        {
            Index = index;
        }
        public int Index { get; set; }
    }
    
  • 把它放在你的控制器上

    [ControllerHelpIndex(2)]
    
  • 更改帮助页面index.cshtml

    // Group APIs by controller
    ILookup<HttpControllerDescriptor, ApiDescription> apiGroups = Model
    .OrderBy(m =>   m.ActionDescriptor.ControllerDescriptor.GetCustomAttributes<ControllerHelpIndexAttribute>().FirstOrDefault()!=null?m.ActionDescriptor.ControllerDescriptor.GetCustomAttributes<ControllerHelpIndexAttribute>().FirstOrDefault().Index:-1)
    .ToLookup(api => api.ActionDescriptor.ControllerDescriptor); 
    
    //按控制器对API进行分组
    ILookup apiGroups=模型
    .OrderBy(m=>m.ActionDescriptor.ControllerDescriptor.GetCustomAttributes().FirstOrDefault()!=null?m.ActionDescriptor.ControllerDescriptor.GetCustomAttributes().FirstOrDefault()。索引:-1)
    .ToLookup(api=>api.ActionDescriptor.ControllerDescriptor);
    

  • 希望有任何用处。

    感谢您的链接,但如果您不回答带有无用信息的问题,这将非常有用。首先,这个博客是针对WebAPI1的,而不是版本2,而且这个博客上没有任何信息可以回答我的问题。当我在这个网站上发布一个新问题时,我正在等待遇到同样问题的人回答我,我以前在谷歌上搜索过答案。谢谢,我从来没有尝试过使用手动“排序”来排序控制器/端点,但可以肯定的是,您必须查看文件\Areas\HelpPage\Views\Help\Index.cshtml并调整
    var-apiGroups=Model.ToLookup(api=>api.ActionDescriptor.ControllerDescriptor)通常我在这里添加了按名称对控制器和端点进行排序的部分。也许您需要向所有ApiDescriptor添加一个自定义属性,并分配一个int值,然后按该数字排序。不管怎么说,Swashback比这个Ms帮助页面要好得多,如果我是你的话,我肯定会变成Swashback。