繁体   English   中英

How to POST javascript object, javascript object list and file list to asp.net core controller

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM