招摇 (Swashbuckle) 隐藏 header

Swagger (Swashbuckle) hide header

我使用 Swashbuckle 将 Swagger 文档添加到我的 ASP.NET Web API 项目中。如何在不注入 CSS 的情况下从文档页面隐藏默认值 header(带有 swagger 徽标)?

很遗憾,我认为您现在可以在 javascript 之前完成。

在您的 SwaggerConfig.cs 中,您可以像这样注入一个 .js 文件:

.EnableSwaggerUi(c =>
{                        
    c.InjectJavaScript(thisAssembly, "yournamespace.yourscript.js");
});

所以在这个脚本中你可以做任何你想做的事,比如隐藏 header:

document.querySelector("#header").style.display = "none";

post 展示了如何自定义 header 在其上放置两个文本框。

编辑:

@dimaKudr 的回答中建议的方法更好。注入一个CSS样式就可以隐藏菜单(不需要JS)

当我按照上面的建议注入 JS 时,header 在页面加载时闪烁。它显示了一秒钟,然后被脚本禁用。 有一种方法更适合我。 https://github.com/domaindrivendev/Swashbuckle/issues/476

你可以注入 CSS 而不是 JS:

#header {
display:none;
}

当我第一次 运行 进入它时,我开始注入 css/js 但每次都很难 "hackish" 来隐藏注入的东西 css。所以过了一会儿,我只是用这个 index.html 的修改版本替换了索引文件 您可以根据需要对其进行修改。删除 id=header 的 div 将删除 header。这也使诸如替换徽标等事情变得更加简单。对于徽标部分,您可以将徽标 src 设置为 en 64 位编码,如此处所示 encode image。此外,删除选项卡中的链接图标就像删除该行一样简单。添加到其他页面的链接等也很简单。将索引注入你的 swaggerconfig

c.CustomAsset("index", thisAssembly, "Path.To.index.html");

记得将索引设置为嵌入式资源。

就算你用CSS或者JS的技巧来隐藏,你试试看也隐藏不了。

CSS备用如下;

.server {display: none;}