Swagger UI不支持ASP.NET Core Web API中用于文件输入的上载按钮

jobtbby3  于 12个月前  发布在  .NET
关注(0)|答案(1)|浏览(194)

我正在处理一个ASP.NET Core Web API项目,特别是使用Microsoft提供的ASP.NET Core Web API模板。我遇到了一个问题,Swagger UI不显示需要文件作为输入的控制器操作的上传按钮。

设置与配置:

1.项目模板:该项目使用ASP.NET Core Web API模板创建,其中包含默认的WeatherForecast API,支持Swagger。
1.
Program.cs中的Swagger配置:

builder.Services.AddSwaggerGen();
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

字符串
1..csproj文件:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <InvariantGlobalization>true</InvariantGlobalization>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
  </ItemGroup>
</Project>


1.WeatherForecastController.cs中的控制器操作:

[HttpPost]
public IActionResult UploadFile([FromForm] IFormFile file)
{
    return Ok();
}

问题:

通过Visual Studio作为HTTP示例启动应用程序后,Swagger UI没有显示预期的文件输入上传按钮。当前的Swagger UI如下所示:


的数据

预期效果:

我希望看到一个类似于这样的上传按钮:



谁能告诉我为什么上传按钮没有出现,以及我如何解决这个问题?

a0x5cqrl

a0x5cqrl1#

发现一个问题…
对于使用6.5和.net 8的Swashbuckle.AspNetCore版本-处理表单和文件插件。只需要省略[FromForm]。并且看起来基于官方Microsoft文档,此属性不应该用于.net core 2.2+。

[HttpPost]
[Route("")]
public IActionResult Post(IFormFile file)
{
}

字符串

相关问题