![](/img/trans.png)
[英]Passing json data list to HttpPost controller in ASP.NET Core 2.1
[英]ASP.NET Core 2.1 passing json list to ajax
我有一個采用類型為ApplicationsListViewModel的列表的控制器。 但是,即使我已經在控制台中檢查了它,我的ajax函數似乎也沒有向它發送任何內容。
控制者
[HttpPost]
public ActionResult Delete(List<ApplicationsListViewModel> Input)
{
foreach (var item in Input)
{
applicationsData.Delete(item.Id);
}
return Ok();
}
視圖模型
public class ApplicationsListViewModel
{
public string Id { get; set; }
public string Name { get; set; }
public string SecretKey { get; set; }
[DataType(DataType.DateTime)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd HH:ii:ss}", ApplyFormatInEditMode = true)]
public DateTime CreatedOn { get; set; }
}
Ajax功能
$(".subnavigation-list").on("click", "#delete", function (e) {
selected = table.rows('.selected').data().toArray();
var form_data = selected;
$.ajax({
url: "@Url.Action("Delete", @ViewContext.RouteData.Values["controller"].ToString())",
method: "POST",
data: JSON.stringify(form_data),
contentType: "application/json",
success: function (result) {
$.each(selected, function (index, value) {
toastr.success("Deleted "+value.Name);
});
table.draw();
},
error: function (error) {
console.log(error);
}
});
return false;
});
當我記錄正在發送的form_data時,得到以下信息:
[{…}]
0: {Id: "a2306cd6-c260-40f0-a51e-f76142206d91", Name: "Application One", SecretKey: "mN9D626lqYqIJdlhI44482/XCSUuiz5IQBEezAmOHoA=", CreatedOn: "2018-10-01T00:19:39.1165394"}
length: 1
__proto__: Array(0)
我想念什么嗎? 它曾經在.NET MVC 5中工作。
在參數的后期處理中,您必須像這樣包含[FromBody]
屬性:
[HttpPost]
public ActionResult Delete([FromBody] List<ApplicationsListViewModel> Input)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.