首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Web API帮助页始终为空

Web API帮助页始终为空
EN

Stack Overflow用户
提问于 2015-07-02 10:35:02
回答 1查看 1.6K关注 0票数 5

我添加了帮助页Nuget包来为我的Web创建文档,但是它对我不起作用,没有显示API方法。

我没有评论:

代码语言:javascript
运行
复制
config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/XmlDocument.xml")));

我选中了框XML文档文件并将路径设置为App_Data/XmlDocument.xml

我不像这里写的那么多解决方案。

我甚至为获得授权的帮助页安装了nuget软件包,但这没有帮助

这是怎么回事?如果我启动空项目比它工作得好,但是这个API太大了,不能再从头开始。

EN

回答 1

Stack Overflow用户

发布于 2016-11-17 21:41:58

如果您使用OWIN作为中间件(就像我一样),您可能会在它的启动方法中初始化一个新的HttpConfiguration。问题是HelpControllerHelpPageConfig正在使用GlobalConfiguration.Configuration,这似乎是错误的。帮助我的是:

HttpConfiguration步骤1:使启动成为静态字段

代码语言:javascript
运行
复制
[assembly: OwinStartup(typeof(MyProject.API.Startup))]
namespace MyProject.API
{
    public class Startup
    {
        //new
        public static HttpConfiguration HttpCfg;
        //

        public void Configuration(IAppBuilder app)
        {
            HttpCfg = new HttpConfiguration();
            WebApiConfig.Register(HttpCfg);
            app.UseWebApi(HttpCfg);

            AreaRegistration.RegisterAllAreas();
        }
    }
}

步骤2:转到HelpPageAreaRegistration RegisterArea 并编辑RegisterArea方法,如下面的

代码语言:javascript
运行
复制
public override void RegisterArea(AreaRegistrationContext context)
{
    context.MapRoute(
        "HelpPage_Default",
        "Help/{action}/{apiId}",
        new { controller = "Help", action = "Index", apiId = UrlParameter.Optional });

    //old
    //HelpPageConfig.Register(GlobalConfiguration.Configuration);

    //new
    HelpPageConfig.Register(Startup.HttpCfg);
}

步骤3:转到HelpController 并编辑标准构造函数,如下面的

代码语言:javascript
运行
复制
//old
//public HelpController() : this(GlobalConfiguration.Configuration){ }

//new
public HelpController() : this(Startup.HttpCfg){ }

我希望这会有所帮助,而且不会太晚;)

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31182234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档