【问题标题】:Issue when sending Json post request with Enums in ASP.NET Core在 ASP.NET Core 中使用枚举发送 Json 发布请求时出现问题
【发布时间】:2021-11-15 09:41:38
【问题描述】:

我正在开发一个 ASP.NET Core 6.0 项目。我试图通过邮递员发送一个帖子请求。但是当我的模型具有枚举数据类型时,它会将控制器作为空值命中。

我有一个字符串枚举

public enum TransactionType
{
    [StringValue("Payment")]
    Payment,

    [StringValue("Deferred")]
    Deferred,

    [StringValue("Refund")]
    Refund,

    [StringValue("Repeat")]
    Repeat,
}

这是我的要求

{
  "transactionType": "Payment",  
   "amount": 1000
}

这是我的控制器

public async Task<IActionResult> Payment([FromBody] PaymentRequest paymentRequest)
{
    var result = await _opayoPaymentService.PaymentTranscation(paymentRequest);
        
    return Ok(result);
}

这是我的模型类:

public class PaymentRequest
{
     public TransactionType TransactionType { get; set; }  // If I comment this The request is hitting fine otherwise It hit as null value,
     public int Amount { get; set; }
}

我猜我的枚举是错误的。谁能帮我找出问题所在?

【问题讨论】:

    标签: c# asp.net-core enums http-post


    【解决方案1】:

    您在控制器中的映射不会在StringValue 元上进行,而是在enumint 类型上进行。在您的情况下,付款为 0,延期为 1,依此类推。如果您不想让框架为您自动执行此操作,您可以为它们分配不同的值。所以不是

    { "transactionType": "支付",
    “金额”:1000 }

    使用

    { “交易类型”:0,
    “金额”:1000 }

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    • 2023-01-09
    • 1970-01-01
    • 2021-01-21
    • 1970-01-01
    相关资源
    最近更新 更多