List<KeyValuePair<string,string>> 的 swagger/swashbuckle Ui 字段

问题描述

我在 .net 5 Web API 应用程序中使用 swagger 5.6.3

在控制器中,我使用 DTO 对象

   [HttpPost]
   public void create([FromForm] CDTO data)

CDTO:

public class CDTO
{
    [required]
    public string name { get; set; }
    [required]
    public string descrption { get; set; }
    [required]
    public IList<keyvaluePair<string,string>> data { get; set; }
}

keyvaluePair 的 swagger UI 如下:

enter image description here

但是对于 IList> 如下:

enter image description here

并且没有正确反序列化。有将列表项显示为键值的解决方案吗?

解决方法

不能 100% 确定您要问什么,但是我创建了 Web API .NET 5。引用了 newtonsoft.Json。将 CDTO 上的必需属性更改为如下:

public class CDTO
{
    [JsonRequired]
    public string name { get; set; }
    [JsonRequired]
    public string descrption { get; set; }
   [JsonRequired]
    public IList<KeyValuePair<string,string>> data { get; set; }
}

然后启动应用程序并提交:

enter image description here