在 ASP.NET Core 中使用枚举发送 Json post 请求时出现问题
Issue when sending Json post request with Enums in ASP.NET Core
我正在研究 ASP.NET Core 6.0 项目。我试图通过 post 人发送 post 请求。但是当我的模型具有枚举数据类型时,它将控制器作为空值命中。
我有一个字符串枚举
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);
}
这是我的模型class:
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; }
}
我想我的枚举是错误的。谁能帮我找出问题所在?
您控制器中的映射不会在 StringValue
元上进行,而是在 enum
的 int
类型上进行。在您的情况下,Payment 为 0,Deferred 为 1,依此类推。如果您不想让框架自动为您完成,您可以为它们分配不同的值。所以而不是
{
"transactionType": "Payment",
"amount": 1000
}
使用
{
"transactionType": 0,
"amount": 1000
}
我正在研究 ASP.NET Core 6.0 项目。我试图通过 post 人发送 post 请求。但是当我的模型具有枚举数据类型时,它将控制器作为空值命中。
我有一个字符串枚举
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);
}
这是我的模型class:
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; }
}
我想我的枚举是错误的。谁能帮我找出问题所在?
您控制器中的映射不会在 StringValue
元上进行,而是在 enum
的 int
类型上进行。在您的情况下,Payment 为 0,Deferred 为 1,依此类推。如果您不想让框架自动为您完成,您可以为它们分配不同的值。所以而不是
{ "transactionType": "Payment",
"amount": 1000 }
使用
{ "transactionType": 0,
"amount": 1000 }