[英]How to POST javascript object, javascript object list and file list to asp.net core controller
单击按钮后,我想将所有数据传递给 controller。
var data = new FormData();
这是我的 javascript object
var info = {};
info.CorporateName = $("input[name*='CorporateName']").val();
info.CorporatePhone1 = $("input[name*='CorporatePhone1']").val();
info.CorporatePhone2 = $("input[name*='CorporatePhone2']").val();
info.CorporateEmail = $("input[name*='CorporateEmail']").val();
我可以从 controller 获得这些数据,代码如下
$.each(info, function (key, input) {
data.append(key, input);
});
这是我的文件列表。 我可以使用以下代码从 controller 访问这些文件
var allfiles = $(".required-files");
for (var i = 0; i < allfiles.length; i++)
{
var files = allfiles[i].files;
data.append('files', files[0]);
}
这是我的包裹饼干。 我无法从 controller 列表中访问 package 列表
var packageList = $.parseJSON($.cookie("packageList"));
data.append('packageList',JSON.stringify(packageList));
我可以发布文件,我的信息 object 但我不能发布 cookie 列表
这是我的 controller
[HttpPost]
public async Task<IActionResult> create(IEnumerable<IFormFile> files, List<PostServiceDto> packageList, ModelDto Model)
{
// files = not null, Model not null, but packageList = null
var model = Request.Form;
return View();
}
我的 package model
public class PostServiceDto
{
public string Type { get; set; }
public string Name { get; set; }
public string Price { get; set; }
public string Id { get; set; }
public string Count { get; set; }
}
我无法使用参数列出它,但我解决了它得到 json object 表单请求正文。
从请求返回的值 = {\"Type\":\"3\",\"Name\":\"dfsfsdfs\",\"Price\":\"44,00\",\"Id\":\"2\",\"Count\":1},{\"Type\":\"3\",\"Name\":\"Yeni Paket\",\"Price\":\"49,90\",\"Id\":\"1\",\"Count\":1}
解
foreach (var item in Request.Form.Keys)
{
if(item == "packageList")
{
clearObject(Request.Form[item]);
}
}
public List<PostServiceDto> clearObject(string value)
{
List<PostServiceDto> postServices = new List<PostServiceDto>();
List<PostServiceDto> myDeserializedObjList =
(List<PostServiceDto>)Newtonsoft.Json.JsonConvert.DeserializeObject(value, typeof(List<PostServiceDto>));
return myDeserializedObjList;
}
代码来源:[https://www.codeproject.com/Tips/79435/Deserialize-JSON-with-C]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.