如何在对ASP.NET核心服务器的POST请求的正文中使用字符串化的枚举?

罗伊2511

服务器代码是

[HttpPost("/<route>/update2")]
        public StatusCodeResult UpdatePanel2([FromBody] PanelUpdateReq updateRequest)
        {
            if (updateRequest == null)
                return BadRequest();

            return Ok();
        }
public enum ZZ
    {
        A,
        B
    }

    public class D
    {
        public int Index { get; set; }

        public string Path1 { get; set; }

        public string Path2 { get; set; }

        public ZZ DefectType { get; set; }

        public double foo { get; set; }

        public int bar { get; set; }
    }

    public class PanelUpdateReq
    {
        public int Number { get; set; }

        public string Path { get; set; }

        public List<D> Items { get; set; }
    }

我发现当我为DefectType枚举使用数字值(即“ DefectType”:0)时,请求返回OK。但是,如果我发送字母“ DefectType”:“ A”,则服务器无法解析该请求并返回错误的请求。

这是完整的请求:

{
    "Number" : 2738,
    "Path" : "abc/cd/2738",
    "Items": [
        {
            "Index" : 1,
            "Path1" : "some path 1",
            "Path2" : "some path 2",
            "DefectType" : 0, // or "A" which does not work
            "foo": 10.0,
            "bar" : 11
        }
    ]
}

知道这里出了什么问题吗?我在SO上查看了其他多个问题(例如这里是1),并且共识是使用“ A”应该可以。

我使用的是Postman客户端,application/json如果很重要,则将内容类型设置为标题中的内容

卡尼

如果将字符串传递给枚举,则可以在启动时配置枚举的序列化。

services.AddControllers()
            .AddJsonOptions(option=>
            {
                option.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
            });

然后,它可以接收该值。

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Linux上启动Asp.net核心服务器并保持其运行

如何在ASP.NET核心服务中使用*关键字

如何在对象初始化程序语法(foreach)中使用字符串拆分?

使用Owin Self-Host ASP.Net API2无法接收带有正文中的数据而不是查询字符串的POST请求

如何在对象内使用接口

如何在对象上使用reduce

如何在对Koa服务器的同一请求中立即设置和使用Cookie?

如何使用字符串枚举转换器进行JSON反序列化?

如何在对话框中使用 QnA 服务?

如何将 PHP 变量封装在字符串中?(在 POST 请求正文中)

Rails的活动资源:如何在请求正文中而不是查询字符串中发送post参数?

如何在接口中使用字符串枚举类型作为计算的属性名称?

Websockets 连接仅在 Chrome 使用子协议访问 ASP 核心服务器时失败

如何获取.net核心服务器名称和选项

如何在对象中使用Javascript URL键

如何在对数刻度中使用`polygon()`?

如何在对象中使用变量名?

如何在对象/方法对中使用回调函数

如何在对象中使用 Vue watch

如何在对比余弦损失函数中使用 ByteTensor?

如何在对话框中使用属性集

如何在对象打字稿中使用数组?

如何在邮递员的帖子请求正文中传递字符串

如何在HTTP请求的JSON正文中传递JSON字符串?

Node.js + express 如何在请求正文中添加字符串?

获取 Azure Asp.Net 核心服务器上图像的文件路径(在控制器中)

如何在blat.exe中使用字符串变量设置电子邮件正文内容?

如何在对象化中基于JodaTime进行过滤

如何在对话框中实例化画布?