Quiero pasar todos los datos al controlador después de hacer clic en el botón.
var data = new FormData();Aquí está mi objeto javascript
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();Puedo acceder a estos datos desde el controlador con el siguiente código
$.each(info, function (key, input) { data.append(key, input); });Aquí está mi lista de archivos. Puedo acceder a estos archivos desde el controlador con el siguiente código
var allfiles = $(".required-files"); for (var i = 0; i < allfiles.length; i++) { var files = allfiles[i].files; data.append('files', files[0]); }Aquí está mi cookie de paquetes. No puedo acceder a la lista de paquetes desde el controlador
var packageList = $.parseJSON($.cookie("packageList")); data.append('packageList',JSON.stringify(packageList));Puedo publicar archivos, mi objeto de información pero no puedo publicar la lista de cookies
Aquí está mi controlador
[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(); }Mi modelo de paquete
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; } }No pude tomar la lista con el parámetro, pero lo resolví obteniendo el cuerpo de solicitud del formulario de objeto json.
el valor devuelto por la solicitud = {\"Type\":\"3\",\"Name\":\"dfsfsdfs\",\"Price\":\"44,00\",\"Id\":\"2\",\"Count\":1},{\"Type\":\"3\",\"Name\":\"Yeni Paket\",\"Price\":\"49,90\",\"Id\":\"1\",\"Count\":1} Solución
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; }código fuente: [https://www.codeproject.com/Tips/79435/Deserialize-JSON-with-C]