gpt4 book ai didi

c# - 在 swagger C# .net 核心中使用 FormData 发送字符串数组?

转载 作者:太空宇宙 更新时间:2023-11-03 14:41:39 25 4
gpt4 key购买 nike

我的.net api签名如下:

[HttpPost]
public async Task<ActionResult<ServiceResult>> SendEmail([FromForm]SendEmailModel model)

下面是我的 swagger 配置:

services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info
{
Version = "v1",
Title = "App-Service"
});
});

.
.
.

app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.DocumentTitle = "App Service";
c.SwaggerEndpoint("/swagger/v1/swagger.json", "App Service");
});
app.UseMvc();

它生成如下内容:

swagger

但是当我执行它时,To 参数发送为

[
"\"1\",\"2\",\"3\""
]

但必须是:

[
"1", "2", "3"
]

我该如何解决?

最佳答案

最好像Vinit Patel说的那样把contract改成[FromBody]。但是,如果这不是一个选项,您将不得不像这样对您的 SendEmailModel 模型做一些骇人听闻的事情:

[HttpPost]
public async Task<ActionResult<ServiceResult>> SendEmail([FromForm]SendEmailModel model)
{
model.To = Regex.Replace(model.To.FirstOrDefault(), "\"", string.Empty)
.Split(",", StringSplitOptions.None);

//now you can loop through model.To as a string array
foreach (string toEmail in model.To)
{
// Your logic here
}
...
}

这可能不是最好的解决方案,但我希望它能有所帮助:)

关于c# - 在 swagger C# .net 核心中使用 FormData 发送字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56542429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com