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

ASP.NET Core项目中Swagger UI不显示输入参数数据类型的问询

解决ASP.NET Core Swagger UI不显示参数数据类型的问题

以下是无需自定义IOperationProcessor的优化方案:

1. 升级Swashbuckle.AspNetCore包

旧版本Swagger UI存在渲染bug,将Swashbuckle.AspNetCore和Swashbuckle.AspNetCore.SwaggerUI包升级到最新稳定版(推荐6.x及以上),多数UI渲染问题会随版本更新修复。

2. 优化参数标记与路由配置

显式标记参数来源,消除Swagger对参数绑定方式的歧义判断:

/// <summary>
/// SomeSummary
/// </summary>
/// <param name="id">SomeParameter description</param>
[HttpGet("{id:int}")]
public async IActionResult GetAsync(
    [FromRoute] [Range(1, int.MaxValue)] [SwaggerParameter(Required = true)] int id, 
    CancellationToken cancellationToken)
{
    ...
}

3. 调整Swagger UI渲染配置

在Program.cs/Startup.cs中修改Swagger UI配置,强制启用模型渲染与类型显示:

app.UseSwaggerUI(c =>
{
    c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
    // 强制以模型形式展示参数
    c.DefaultModelRendering(ModelRendering.Model);
    // 设置模型展开深度,保证类型信息可见
    c.DefaultModelsExpandDepth(2);
});

4. 清除浏览器缓存

若docs.json已包含类型信息但UI未更新,按下Ctrl+F5强制刷新页面,或清除浏览器缓存后重新访问Swagger UI,避免旧资源缓存导致的显示异常。

5. 排查自定义过滤器影响

如果配置过自定义IDocumentFilter或IOperationFilter,检查代码是否意外修改了参数的Schema结构,导致类型信息被移除。


内容的提问来源于stack exchange,提问作者Владислав Пестриков

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 21:22:52