Swagger(Swashbuckle)隐藏标头

20

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

4个回答

16

你的方法更好,只是隐藏菜单 :) - fabriciorissetto
2
在较新的版本中,我需要执行.topbar {display: none;} - Crazometer
这是一个技巧,但不是一个正确的解决方案。 - R.Akhlaghi

10

很不幸,我认为现在只能通过JavaScript来实现它。

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

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

所以在这个脚本中,你可以随心所欲地做任何事情,比如隐藏标题:

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

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

编辑:

@dimaKudr提出的方法更好。注入CSS样式就足以隐藏菜单(不需要使用JavaScript)。


0
即使您使用CSS或JS技巧进行隐藏,当您尝试时实际上无法隐藏它。
CSS替代方案如下:
.server {display: none;}

0

当我第一次遇到这个问题时,我开始注入CSS / JS,但每次都很困难并且使用注入的CSS来隐藏东西有点“笨拙”。所以过了一段时间后,我简单地用一个修改版的index.html替换了索引文件。你可以根据你的喜好进行修改。删除ID为header的div将删除头部。还有这让像替换logo等事情变得更加简单。对于logo部分,你可以将其src设置为en 64位编码,如此处所示encode image。删除标签中链接的favicon也很简单,只需删除该行即可。另外,添加到其他页面的链接等等都是微不足道的。将索引插入swaggerconfig中就像这样注入它。

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接