You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 6 Web API中如何为Swagger添加复制到剪贴板按钮?

解决.NET Core 6 Swagger UI路由无复制到剪贴板按钮的问题

1. 确认Swashbuckle包版本一致性

确保你安装的Swashbuckle.AspNetCore.Swagger、Swashbuckle.AspNetCore.SwaggerGen、Swashbuckle.AspNetCore.SwaggerUI三个包版本完全一致,且为适配.NET Core 6的6.x系列版本(如6.4.0及以上)。版本不一致可能导致UI功能缺失。

2. 检查SwaggerUI配置

在Program.cs中,确保SwaggerUI的配置正确启用相关功能,默认配置下复制按钮应存在,若未显示可显式添加以下配置:

app.UseSwaggerUI(c =>
{
    c.SwaggerEndpoint("/swagger/v1/swagger.json", "你的API名称 V1");
    // 启用Try It Out面板,该功能默认附带路由复制按钮
    c.EnableTryItOutPanel();
    // 设置UI默认展开路由列表,便于查看复制按钮
    c.DocExpansion(Swashbuckle.AspNetCore.SwaggerUI.DocExpansion.List);
});

3. 清除缓存并重启项目

浏览器缓存可能导致SwaggerUI资源未更新,按下Ctrl+F5强制刷新页面,或重启.NET Core 6项目后再次查看。

4. 自定义复制按钮(备选方案)

如果上述方法无效,可通过注入自定义JavaScript添加复制功能:
在UseSwaggerUI配置中引入自定义脚本:

app.UseSwaggerUI(c =>
{
    c.SwaggerEndpoint("/swagger/v1/swagger.json", "你的API名称 V1");
    // 注入自定义JS文件
    c.InjectJavascript("/swagger-custom.js");
});

在项目的wwwroot目录下创建swagger-custom.js文件,内容如下:

window.addEventListener('load', function() {
    // 定时检查并添加复制按钮
    setInterval(function() {
        const pathItems = document.querySelectorAll('.opblock-path');
        pathItems.forEach(item => {
            if (!item.querySelector('.copy-btn')) {
                const copyBtn = document.createElement('button');
                copyBtn.className = 'copy-btn';
                copyBtn.textContent = '复制';
                copyBtn.style.marginLeft = '10px';
                copyBtn.addEventListener('click', function() {
                    const pathText = item.querySelector('.opblock-summary-path').textContent.trim();
                    navigator.clipboard.writeText(pathText).then(() => {
                        alert('已复制到剪贴板');
                    });
                });
                item.appendChild(copyBtn);
            }
        });
    }, 1000);
});

内容的提问来源于stack exchange,提问作者Hovi906

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 06:14:57