ASP.Net Web Api 2.2生成的帮助文件不显示api文档

时间:2016-06-08 09:51:55

标签: asp.net api asp.net-web-api

我已按照以下步骤生成api帮助http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/creating-api-help-pages,这一切都运行良好。

今天,我注意到帮助页面没有在api组部分显示任何内容。

这一行;

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

找不到任何要迭代的组并显示api帮助。

@using System.Web.Http
@using System.Web.Http.Controllers
@using System.Web.Http.Description
@using System.Collections.ObjectModel
@using MyCompany.WebApi.Areas.HelpPage.Models
@model Collection<ApiDescription>

@{
    ViewBag.Title = "Web API Help Page";

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

<link type="text/css" href="~/Areas/HelpPage/HelpPage.css" rel="stylesheet" />
<header class="help-page">
    <div class="content-wrapper">
        <div class="float-left">
            <h1>@ViewBag.Title</h1>
        </div>
    </div>
</header>
<div id="body" class="help-page">
    <section class="featured">
        <div class="content-wrapper">
            <h2>Introduction</h2>
            <p>
                Provide a general description of your APIs here.
            </p>
        </div>
    </section>
    <section class="content-wrapper main-content clear-fix">
        @foreach (var group in apiGroups)
        {
            @Html.DisplayFor(m => group, "ApiGroup")
        }
    </section>
</div>

我使用的是Microsoft.AspNet.WebApi.HelpPage版本5.2.3,与5.2.2相同。 Visual Studio 2015,MVC 5。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好吧,这是StartUp.cs和Global.asax.cs

中的某些代码之间的冲突

通常在Global.asax中你有这一行;

GlobalConfiguration.Configure(WebApiConfig.Register);

但是我已经对此进行了评论,因为我使用OWIN进行了一系列更改并获得了CORS配置。所以我的StartUp.cs看起来像这样;

public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);

            //Load any config settings from web.config
            MyConfiguration.Load();

            //Create AutoMapper maps.
            AutoMapperConfigurator.Configure();

            //write web api into Owin server pipeline.
            HttpConfiguration config = new HttpConfiguration();
            WebApiConfig.Register(config);
            //Get CORS working.
            app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
            app.UseWebApi(config);
        }

我想,因为我在这里调用WebApiConfig.Register,我不需要在Global.asax中调用它。

显然,为了使api帮助工作和生成,我仍然需要在Application_Start方法中调用GlobalConfiguration.Configure(WebApiConfig.Register)。

希望有所帮助。