当向 Asp.Net Core Web Api(版本 3.1)发送 POST 请求时,我从 POSTMAN 获得状态 500 代码
I am getting Status 500 code from POSTMAN when sending POST request to Asp.Net Core Web Api (version 3.1)
我在 POSTMAN 和 Asp.Net 核心 Web Api.
之间进行 Web api 测试
Web 应用程序很可能仅在可以从 URL 进行模型绑定时才响应。
但是,每次它应该从 HTTP 请求正文进行模型绑定时,它都会响应状态 500 代码。
我的代码如下。
Web Api 控制器代码:
[ApiController]
[Route("api/[controller]")]
public class OrderController : ControllerBase
{
private IOrderRepository _orderRepo;
public OrderController(IOrderRepository repo) // Dependency Injection
{
_orderRepo = repo;
}
[HttpGet]
public IEnumerable<Order> Get() => _orderRepo.Orders;
[HttpGet("{id}")]
public Order Get(int id) => _orderRepo[id];
[HttpPost]
public Order Post([FromBody] Order order) => _orderRepo.Add(order);
型号Class代码:
public class Order
{
public int Id { get; set; } = 0;
public string ClientName { get; set; }
public string Menu { get; set; }
public int NoOfMenu { get; set; }
public Order(string clientName, string menuName, int noOfMenu)
{
ClientName = clientName;
Menu = menuName;
NoOfMenu = noOfMenu;
}
}
POST 操作方法的存储库代码:
// deleted for brevity
private Dictionary<int, Order> _orderlist = new Dictionary<int, Order>();
public Order Add(Order newOrder)
{
if(newOrder.Id == 0)
{
int key = _orderlist.Count;
while(_orderlist.ContainsKey(key)) key++;
newOrder.Id = key;
}
_orderlist[newOrder.Id] = newOrder;
return newOrder;
}
在 POSTMAN 中,获取请求成功。
这是获取的时间:api/Order
这是获取的时候:api/Order/id
但是,Post 请求 returns 状态 500。
任何人都可以帮助解决这种情况吗?
我测试了你的代码并重现了你的问题。您可以添加无参数构造函数。
public class Order
{
public int Id { get; set; } = 0;
public string ClientName { get; set; }
public string Menu { get; set; }
public int NoOfMenu { get; set; }
public Order(string clientName, string menuName, int noOfMenu)
{
ClientName = clientName;
Menu = menuName;
NoOfMenu = noOfMenu;
}
public Order()
{
}
}
我在 POSTMAN 和 Asp.Net 核心 Web Api.
之间进行 Web api 测试Web 应用程序很可能仅在可以从 URL 进行模型绑定时才响应。 但是,每次它应该从 HTTP 请求正文进行模型绑定时,它都会响应状态 500 代码。
我的代码如下。
Web Api 控制器代码:
[ApiController]
[Route("api/[controller]")]
public class OrderController : ControllerBase
{
private IOrderRepository _orderRepo;
public OrderController(IOrderRepository repo) // Dependency Injection
{
_orderRepo = repo;
}
[HttpGet]
public IEnumerable<Order> Get() => _orderRepo.Orders;
[HttpGet("{id}")]
public Order Get(int id) => _orderRepo[id];
[HttpPost]
public Order Post([FromBody] Order order) => _orderRepo.Add(order);
型号Class代码:
public class Order
{
public int Id { get; set; } = 0;
public string ClientName { get; set; }
public string Menu { get; set; }
public int NoOfMenu { get; set; }
public Order(string clientName, string menuName, int noOfMenu)
{
ClientName = clientName;
Menu = menuName;
NoOfMenu = noOfMenu;
}
}
POST 操作方法的存储库代码:
// deleted for brevity
private Dictionary<int, Order> _orderlist = new Dictionary<int, Order>();
public Order Add(Order newOrder)
{
if(newOrder.Id == 0)
{
int key = _orderlist.Count;
while(_orderlist.ContainsKey(key)) key++;
newOrder.Id = key;
}
_orderlist[newOrder.Id] = newOrder;
return newOrder;
}
在 POSTMAN 中,获取请求成功。
这是获取的时间:api/Order
这是获取的时候:api/Order/id
但是,Post 请求 returns 状态 500。
任何人都可以帮助解决这种情况吗?
我测试了你的代码并重现了你的问题。您可以添加无参数构造函数。
public class Order
{
public int Id { get; set; } = 0;
public string ClientName { get; set; }
public string Menu { get; set; }
public int NoOfMenu { get; set; }
public Order(string clientName, string menuName, int noOfMenu)
{
ClientName = clientName;
Menu = menuName;
NoOfMenu = noOfMenu;
}
public Order()
{
}
}