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

jobtbby3  于 2024-01-08  发布在  .NET
关注(0)|答案(1)|浏览(284)

我正在处理一个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配置:

  1. builder.Services.AddSwaggerGen();
  2. if (app.Environment.IsDevelopment())
  3. {
  4. app.UseSwagger();
  5. app.UseSwaggerUI();
  6. }

字符串
1..csproj文件:

  1. <Project Sdk="Microsoft.NET.Sdk.Web">
  2. <PropertyGroup>
  3. <TargetFramework>net8.0</TargetFramework>
  4. <Nullable>enable</Nullable>
  5. <ImplicitUsings>enable</ImplicitUsings>
  6. <InvariantGlobalization>true</InvariantGlobalization>
  7. </PropertyGroup>
  8. <ItemGroup>
  9. <PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
  10. </ItemGroup>
  11. </Project>


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

  1. [HttpPost]
  2. public IActionResult UploadFile([FromForm] IFormFile file)
  3. {
  4. return Ok();
  5. }

问题:

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


的数据

预期效果:

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



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

a0x5cqrl

a0x5cqrl1#

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

  1. [HttpPost]
  2. [Route("")]
  3. public IActionResult Post(IFormFile file)
  4. {
  5. }

字符串

相关问题