我已按照以下步骤生成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。
有什么想法吗?
答案 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)。
希望有所帮助。