【发布时间】:2020-04-11 23:31:09
【问题描述】:
这是我的 json 对象的 javascript 数组
var pObjIds = [{"Id":"2","Name":"small"},{"Id":"3","Name":"average"}]
我已将表单字段收集到这样的 FormData() 中
var form = new FormData($(this)[0]);
我已经像这样将 json 对象数组附加到 FormData
form.append("Availability", pObjIds);
我有一个带有属性的 ViewModel
public List<Item> Availability { get; set; }
Item 类如下所示
public class Item
{
[JsonProperty(PropertyName = "Id")]
public int Id { get; set; }
[JsonProperty(PropertyName = "Name")]
public string Name { get; set; }
}
我的控制器接收表单数据的方法是
[HttpPost]
public IActionResult AddSupplier(SupplierVM vm, List<Item> list)
{
if (ModelState.IsValid)
{
}
return View("AddSupplier", vm);
}
我的意图是将 formData 中附加的可用性绑定到属性
public List<Item> Availability { get; set; } 在 ViewModel 中。
上面的代码是我尝试过的,但它没有约束力。总是返回 count=0 表示可用性。
是我做错了什么还是有更好的方法可以做到? 我在控制器中使用了 FormCollection,但仍然没有看到附加的 json 对象数组,但我可以在控制台中记录它并看到它已成功附加。
我正在使用 dotnet core 3.0 mvc。
提前致谢。
这是调用 AddSupplier 的客户端代码
var form = new FormData($(this)[0]);
form.append("Availability", pObjIds);
$.ajax({
type: 'POST',
url: '/supplier/addsupplier/',
data: form,
processData: false,
contentType: false,
datatype: 'json',
success: function (result) {
if (result.status == false) {
swal({
title: 'Error!',
text: result.msg,
icon: "error",
button: "Ok",
});
}
},
error: function () {
swal({
title: "Unknown Error!",
text: "unable to process request!",
icon: "error",
button: "Ok",
});
}
});
【问题讨论】:
-
您能否发布更多关于如何在客户端调用
AddSupplier的代码?此外,this SO answer 可能是相关的 -
感谢您的回复。我刚刚编辑了问题,包括关于如何在客户端调用 AddSupplier 的代码 sn-p
标签: javascript c# json json.net asp.net-core-mvc