WebApi作为RESTful的风格已经广为流行,在后端有时我们需要传入List类型的参数,那这时前端要如何发送数据呢?按以往ajax的经验,我们可能会选择post的方式,以formdata或者json数据来提效,比如
$.post(url,{'list':data},function(success){...})
或者
$.ajax(type:"post",data:{"list":data},success:function(success){...})
或者
var formData=https://www.it610.com/article/new FormData();
formData.append("list",data);
$.ajax(type:"post",data:formData,success:function(success){...})
但是以上的三种方式,在后端都无法有效的收到数据。后端的WebApi函数如下
[HttpPost]
public HttpResponseMessage Send([FromBody]List list)
{
if(list==null||list.count<=0)
{
//....
}
else
{
//....
}
}
后端收到的list都是0个,为什么呢? 原因在于,这里收的是Request Payload形式的json数据,所以只要我们在ajax的时候指定合适的content-type即可。新的代码如下
【C#|WebApi后端的List前端如何发送()】
$.ajax({
type: 'POST',
url: "/Api/Conversation/CancelRegister",
contentType: 'application/json;
charset=utf-8',//将json数据以request payload的形式发起请求
data: JSON.stringify(chatIdList),
success: function (response) {}
});
这时后端即可收到数据了。 转载请注明出处。
推荐阅读
- 操作系统|[译]从内部了解现代浏览器(1)
- web网页模板|如此优秀的JS轮播图,写完老师都沉默了
- JavaScript|vue 基于axios封装request接口请求——request.js文件
- vue.js|vue中使用axios封装成request使用
- JavaScript|JavaScript: BOM对象 和 DOM 对象的增删改查
- JavaScript|JavaScript — 初识数组、数组字面量和方法、forEach、数组的遍历
- JavaScript|JavaScript — call()和apply()、Date对象、Math、包装类、字符串的方法
- JavaScript|JavaScript之DOM增删改查(重点)
- javascript|vue使用js-xlsx导出excel,可修改格子样式,例如背景颜色、字体大小、列宽等
- C#|C# 文件路径操作