如何将 json 对象数组传递给控制器?
How to pass array of json object to controller?
我尝试了很多方法,但每次 ajax 都会向控制器发送空值。我有如下样式的 json 对象数组。我想将这个数组发送到我的控制器,但每次控制器参数都为空。我做错了什么?
{
"barkodliste":[
{
"ToplamSonuc":0,
"KitapKey":12,
"DemirbasNo":112,
"Isbn":"fghfgh",
"KutuphaneSiraNo":"fghfghh/fghfg",
"KitapAdi":"0000000000112 - Fghfg",
"Adet":0,
"Durum":1
},
{
"ToplamSonuc":0,
"KitapKey":15,
"DemirbasNo":115,
"Isbn":"sdlfkjsd",
"KutuphaneSiraNo":"fsdkljflskdj/dsfkl",
"KitapAdi":"0000000000115 - Sdlfkjsd",
"Adet":0,
"Durum":1
}
]
}
KitapAramaSonucModel.cs
public class KitapAramaSonucModel
{
public int ToplamSonuc { get; set; }
public int KitapKey { get; set; }
public int DemirbasNo { get; set; }
public string Isbn { get; set; }
public string KutuphaneSiraNo { get; set; }
public string KitapAdi { get; set; }
public string Yazar { get; set; }
public int Adet{ get; set; }
public int Durum { get; set; }
public string Barkod { get; set; }
}
控制器
[HttpPost]
public async Task<JsonResult> BarkodBasilacakKitaplariGetir(List<KitapAramaSonucModel> barkodlar)
{
//Do something with barkodlar
}
cshtml
var barkodliste = $("#books").data("kendoMultiSelect").dataItems();
$.ajax({
cache: false,
url: "/Kutuphane/BarkodBasilacakKitaplariGetir",
type: 'POST',
contentType: "application/json charset=utf-8",
traditional: true,
data: JSON.stringify({ barkodlar: barkodliste }),
success: function (data) {
alert("success");
}
});
- 尝试使用 Fiddler 或 Postman 调用
- 尝试查看调用是如何发生的(Fiddler 或浏览器),也许您发送的不是数组
- 尝试添加 [FromBody] BarkodBasilacakKitaplariGetir([FromBody] 列表
您的控制器正在等待:
[
{
"ToplamSonuc":0,
"KitapKey":12,
"DemirbasNo":112,
"Isbn":"fghfgh",
"KutuphaneSiraNo":"fghfghh/fghfg",
"KitapAdi":"0000000000112 - Fghfg",
"Adet":0,
"Durum":1
},
{
"ToplamSonuc":0,
"KitapKey":15,
"DemirbasNo":115,
"Isbn":"sdlfkjsd",
"KutuphaneSiraNo":"fsdkljflskdj/dsfkl",
"KitapAdi":"0000000000115 - Sdlfkjsd",
"Adet":0,
"Durum":1
}
]
在ajax请求中,尝试:data: JSON.stringify(barkodliste)
我尝试了很多方法,但每次 ajax 都会向控制器发送空值。我有如下样式的 json 对象数组。我想将这个数组发送到我的控制器,但每次控制器参数都为空。我做错了什么?
{
"barkodliste":[
{
"ToplamSonuc":0,
"KitapKey":12,
"DemirbasNo":112,
"Isbn":"fghfgh",
"KutuphaneSiraNo":"fghfghh/fghfg",
"KitapAdi":"0000000000112 - Fghfg",
"Adet":0,
"Durum":1
},
{
"ToplamSonuc":0,
"KitapKey":15,
"DemirbasNo":115,
"Isbn":"sdlfkjsd",
"KutuphaneSiraNo":"fsdkljflskdj/dsfkl",
"KitapAdi":"0000000000115 - Sdlfkjsd",
"Adet":0,
"Durum":1
}
]
}
KitapAramaSonucModel.cs
public class KitapAramaSonucModel
{
public int ToplamSonuc { get; set; }
public int KitapKey { get; set; }
public int DemirbasNo { get; set; }
public string Isbn { get; set; }
public string KutuphaneSiraNo { get; set; }
public string KitapAdi { get; set; }
public string Yazar { get; set; }
public int Adet{ get; set; }
public int Durum { get; set; }
public string Barkod { get; set; }
}
控制器
[HttpPost]
public async Task<JsonResult> BarkodBasilacakKitaplariGetir(List<KitapAramaSonucModel> barkodlar)
{
//Do something with barkodlar
}
cshtml
var barkodliste = $("#books").data("kendoMultiSelect").dataItems();
$.ajax({
cache: false,
url: "/Kutuphane/BarkodBasilacakKitaplariGetir",
type: 'POST',
contentType: "application/json charset=utf-8",
traditional: true,
data: JSON.stringify({ barkodlar: barkodliste }),
success: function (data) {
alert("success");
}
});
- 尝试使用 Fiddler 或 Postman 调用
- 尝试查看调用是如何发生的(Fiddler 或浏览器),也许您发送的不是数组
- 尝试添加 [FromBody] BarkodBasilacakKitaplariGetir([FromBody] 列表
您的控制器正在等待:
[
{
"ToplamSonuc":0,
"KitapKey":12,
"DemirbasNo":112,
"Isbn":"fghfgh",
"KutuphaneSiraNo":"fghfghh/fghfg",
"KitapAdi":"0000000000112 - Fghfg",
"Adet":0,
"Durum":1
},
{
"ToplamSonuc":0,
"KitapKey":15,
"DemirbasNo":115,
"Isbn":"sdlfkjsd",
"KutuphaneSiraNo":"fsdkljflskdj/dsfkl",
"KitapAdi":"0000000000115 - Sdlfkjsd",
"Adet":0,
"Durum":1
}
]
在ajax请求中,尝试:data: JSON.stringify(barkodliste)