今天在寫的時候遇到的問題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