今天在写的时候遇到的问题asp.net mvc提交json数据,后端接受的时候是空的
这是提交的表单数据
格式化后的表单数据
后台接受时是空值
问题解决
这是后台程序的一个方法,参数名是SptList
这是前端的提交数据,我这里把之前的
{Delete_data2:Delete_data2}
改成
{SptList:Delete_data2}
这个SptList很重要,因为要和后端的参数变量名一致
前端代码
第一步:使用JSON.stringify(参数)格式化成json数据
var Delete_data2 = JSON.stringify(Delete_data);
第二步:数据封装
$.post("/CPLVFXAdmin/Product/ProductTypeDeleteList", {SptList: Delete_data2}, function (data, status) {
//提交成功后,执行的一些动作
});
{SptList: Delete_data2}
这个是重点:SptList:一定要和后端方法参数名一致
后端代码
public JsonResult ProductTypeDeleteList(String SptList)
{
List<ProductType> productTypesList=new List<ProductType>();
//反序列化
productTypesList=JsonConvert.DeserializeObject<List<ProductType>>(SptList);
//这里封装了返回的数据格式
ResultModel<string> resultModel = new ResultModel<string>();
foreach (ProductType item in productTypesList)
{
//执行逐条删除的动作
}
return Json(resultModel);
}
重点:
JsonConvert.DeserializeObject<>()
这个是反序列化,把json反序列化成对象
如果是单条的json,你可以这样写
User user=JsonConvert.DeserializeObject<user>("json格式的数据")
我上面是多条json数据
List<User> user=JsonConvert.DeserializeObject<List<user>>("json格式的数据")
注意:
我这里的反序列用的Newtonsoft
延伸阅读
c# .net的Newtonsoft.Json序列化和反序列化
https://blog.csdn.net/cplvfx/article/details/106642949