将json绑定到.NET中的模型时出错
一整天都在为一个问题挣扎。当我试图传递这个JSON数据时,我从Postman那里得到了一个“415错误不支持的媒体类型”将json绑定到.NET中的模型时出错,json,asp.net-mvc,entity-framework,Json,Asp.net Mvc,Entity Framework,一整天都在为一个问题挣扎。当我试图传递这个JSON数据时,我从Postman那里得到了一个“415错误不支持的媒体类型” {"MatrattId":"1","MatrattNamn":"Capri","Beskrivning":"abc","Pris":56,"MatrattTyp":"1"} 对于此控制器: public IActionResult AddDish([FromBody]Matratt dish) { restaurantRepository.AddDish(dish)
{"MatrattId":"1","MatrattNamn":"Capri","Beskrivning":"abc","Pris":56,"MatrattTyp":"1"}
对于此控制器:
public IActionResult AddDish([FromBody]Matratt dish)
{
restaurantRepository.AddDish(dish);
return Ok();
}
下面是我的模型。该项目首先使用实体框架数据库。(这就是为什么模型类是局部的)
公共部分类Matratt
{
公共马特拉特()
{
BestallningMatratt=新哈希集();
MatrattProdukt=新HashSet();
}
公共int MatrattId{get;set;}
公共字符串MatrattNamn{get;set;}
公共字符串Beskrivning{get;set;}
公共整数{get;set;}
公共int MatrattTyp{get;set;}
公共虚拟ICollection BestallningMatratt{get;set;}
公共虚拟ICollection MatrattProdukt{get;set;}
公共虚拟MatrattTyp MatrattTypNavigation{get;set;}
}
有什么想法吗?提前感谢。将ajax中的内容类型设置为
“application/json”
并添加Accept头
$.ajax({
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
'type': 'POST',
'url': url,
'data': JSON.stringify(data),
'dataType': 'json',
'success': function(resp){}
});
MatrattId
和MatrattTyp
类型为int,但在json中您发送的是字符串数据。您是否设置了ContentType
?@kranis100共享您如何将数据发布到控制器?ajax/postcode@Marc我将格式更改为:{“matrattId”:1,“matrattnam”:“Capri”,“beskrivning”:“abc”,“pris”:56,“matrattTyp”:1},但仍然显示相同的错误消息。@StephenMuecke是的,我已设置内容类型。这里有两个截图:@kranis100在查询或尝试集中更新您的代码headers@BalajuMarimuthu请注意我上面评论中的两个截图。我已经设置了标题。您看到我需要更改的内容了吗?[问题解决]我在postman中设置了错误的标题。谢谢你的帮助。
$.ajax({
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
'type': 'POST',
'url': url,
'data': JSON.stringify(data),
'dataType': 'json',
'success': function(resp){}
});