如何解决.net核心3.1将对象的ajax列表发布到MVC控制器,没有数据到达
我正在尝试通过AJAX将对象列表发布到MVC控制器,但是当它到达控制器时,editedPrices
参数为0。
我在做什么错?目前,我不确定问题出在发送的数据还是控制器。
Java脚本:
$(document).ready(function () {
var newPrices = [
{ "id": "1","wePrice" : "99","wdPrice":"79" },{ "id": "2","wePrice" :"89","wdPrice":"59" }
];
editedPrices = JSON.stringify(newPrices);
$.ajax({
contentType: 'application/json; charset=utf-8',type: "POST",url: "@Url.Action("EditRates")",data: {editedPrices : newPrices},dataType: "json",success: function (msg) {
alert(msg);
},error: function (req,status,error) {
alert(error);
}
});
});
c#对象
public class EditPrices
{
public string id { get; set; }
public string wePrice { get; set; }
public string wdPrice { get; set; }
}
控制器
[HttpPost]
public int EditRates(List<EditPrices> editedPrices )
{
return editedPrices.Count();
}
我尝试使用[FromBody]
属性,但是editedPrices参数为null(与显示为0相对)。
修改 为了澄清起见,我可以看到一些数据正在AJAX请求中发送。我可以看到正在调用控制器。因此,AJAX要求它自身可以正常工作。但是我要么以“错误”格式发送数据,要么我尝试接收数据的方式有问题。
解决方法
您应该更改此行:
...
data: JSON.stringify(newPrices),...
- 您正在使用
{editedPrices : newPrices}
制作另一个对象。您的API接受数组。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。