19

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

4

4 回答 4

16

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

您可以注入 CSS 而不是 JS:

#header {
display:none;
}
于 2015-09-02T09:42:54.503 回答
10

不幸的是,我认为您现在可以通过 javascript 完成它。

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

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

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

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

这篇文章展示了如何自定义在其上放置两个文本框的标题。

编辑:

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

于 2015-08-27T23:01:27.640 回答
0

当我第一次遇到这个问题时,我开始注入 css/js,但每次用注入的 css 隐藏东西都是一种斗争和一种“hackish”。所以过了一会儿,我简单地将索引文件替换为这个index.html的修改版本, 您可以随意修改它。删除 id=header 的 div 将删除标题。这也使诸如更换徽标等事情变得更加简单。对于 logo 部分,您可以将 logo src 设置为 en 64-bit encode,如此处所示encode image。删除选项卡中链接的网站图标也与删除行一样简单。添加到其他页面的链接等也是微不足道的。像这样在 swaggerconfig 中注入索引

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

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

于 2017-07-19T13:19:44.723 回答
0

即使你通过 CSS 或 JS 的技巧来隐藏,你在尝试时也无法真正隐藏它。

CSS 替代如下;

.server {display: none;}
于 2021-02-18T08:37:05.903 回答