如何在.NET 8的ASP.NET Core Swagger UI响应区隐藏Links列
在ASP.NET Core .NET 8中隐藏Swagger响应区域的Links列
有两种可行的方法可以移除Swagger响应区域的Links列,具体如下:
方法一:注入自定义CSS隐藏列
- 在项目的
wwwroot目录下创建swagger-custom.css文件,写入以下样式:
/* 隐藏Swagger响应表格的Links列 */ .swagger-ui .responses-table .response-links { display: none !important; }
- 在
Program.cs中配置Swagger UI,注入这个自定义样式文件:
// 确保UseStaticFiles在UseSwaggerUI之前调用,否则无法加载静态CSS文件 app.UseStaticFiles(); app.UseSwagger(); app.UseSwaggerUI(options => { // 注入自定义样式 options.InjectStylesheet("/swagger-custom.css"); });
方法二:使用自定义Swagger UI索引页
如果需要更彻底的控制,可以自定义Swagger UI的index.html文件:
- 生成默认的Swagger UI索引页,执行以下命令(替换为你的程序集名称):
dotnet swagger tofile --output swagger/index.html --openapi YourProjectAssembly.dll v1
- 打开生成的
swagger/index.html,在<head>标签内添加隐藏Links列的样式:
<style> .swagger-ui .responses-table .response-links { display: none !important; } </style>
- 将这个index.html设置为嵌入资源,在项目的
.csproj文件中添加:
<ItemGroup> <EmbeddedResource Include="swagger/index.html" /> </ItemGroup>
- 在
Program.cs中配置Swagger UI使用自定义索引页:
app.UseSwaggerUI(options => { // 替换为你的命名空间和资源路径 options.IndexStream = () => typeof(Program).Assembly.GetManifestResourceStream("YourProjectNamespace.swagger.index.html"); });
两种方法都能实现隐藏Links列的效果,方法一操作更简单,适合快速实现;方法二更灵活,方便后续对Swagger UI做更多自定义调整。
内容的提问来源于stack exchange,提问作者Alek Davis
相关产品推荐
相关产品推荐

