我一直在尝试将数据发送到API,以使该API在数据库中保留操作。我无法做到,也找不到解决方案。请帮忙。
模型Dto:
public class NewRentalDto
{
public int CustomerId { get; set; }
public List<int> MovieIds { get; set; }
}
控制器定义:
public IHttpActionResult NewRentals(NewRentalDto newRental){
//todo
}
通过邮递员发送的Json对象:
尝试1:
{
"movieIds": [3,4]
,"customerId": 1004
}
结果:异常
尝试2:
{
"MovieIds": [3,4]
,"CustomerId": 1004
}
结果:异常
尝试3:
{
"Movieids": [3,4]
,"Customerid": 1004
}
结果:异常
尝试5:
{
"customerId": 1004
,"movieIds": [3,4]
}
结果:异常
当我尝试访问newRental实例时,在控制器的“ todo”部分中得到了异常。 这是我收到的消息:
{
"message": "An error has occurred.",
"exceptionMessage": "Object reference not set to an instance of an object."
//more error info
}
答案 0 :(得分:0)
您是否已定义发送对象时要使用的动词?例如API需要[HttpPost]或[HttpGet] ..
当我定义API端点时,通常会明确设置动词以及动词来自何处。
例如
[HttpPost]
public IHttpActionResult NewRentals([FromBody]NewRentalDto newRental)
这将与您在Postman中选择的选项保持一致。如果动词不正确(例如,控制器要求输入“ GET”,而您正在“ POST”输入数据),则该对象的实例为null。
也。您可能希望将Newtonsoft作为参考包含在对象中,并标记属性,如下所示:
using Newtonsoft.Json;
[JsonObject]
public class NewRentalDto
{
[JsonProperty]
public int CustomerId { get; set; }
[JsonProperty]
public List<int> MovieIds { get; set; }
}
答案 1 :(得分:0)