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

ASP.Net Core 2.0升级Swashbuckle.AspNetCore后Swagger UI参数列丢失咨询

确实是破坏性变更导致的问题

你遇到的情况完全是Swashbuckle.AspNetCore 2.x版本带来的破坏性变更——这个版本最大的变化之一就是将底层依赖的Swagger UI从2.x升级到了3.x,而Swagger UI 3.x对界面布局和默认展示项做了大幅调整。

之前Swagger UI 2.x默认显示的"Description""Data Type""Parameter Type"这些列,在3.x版本里要么被整合到了其他交互区域(比如参数的描述会在鼠标悬停时以tooltip形式显示),要么被设置为默认隐藏状态。不过你提到swagger.json里仍然保留这些信息是对的,因为后端的Swagger生成逻辑并没有丢失这些数据,只是前端UI的展示规则变了。

要恢复这些信息的显式展示,可以通过配置SwaggerUI的选项来调整。在你的Startup.cs的Configure方法中,修改UseSwaggerUI的配置:

app.UseSwaggerUI(c =>
{
    c.SwaggerEndpoint("/swagger/v1/swagger.json", "你的API名称 V1");
    // 展开模型的详细层级,确保数据类型等信息显示
    c.DefaultModelExpandDepth(2);
    // 设置模型以结构化方式渲染,而非仅显示示例
    c.DefaultModelRendering(Swashbuckle.AspNetCore.SwaggerUI.ModelRendering.Model);
    // 强制显示参数的描述扩展信息
    c.ShowExtensions();
});

调整这些配置后,你应该就能在Swagger界面上重新看到之前的那些列或者对应的详细信息了。这个变更在Swashbuckle.AspNetCore的官方升级说明里有明确提及,属于大版本升级时的预期界面变化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:11:45