c# - How to pass a composite array from Javascript to WEB API controller HttpPOST? -
c# - How to pass a composite array from Javascript to WEB API controller HttpPOST? -
my javascriptcode
//insert employee , section record this.insertemployeedepartment = function (employee) { var request = $http({ method: "post", url: "/employee/insertemployeedepartment", contenttype: "application/json", data: json.stringify(employee) }); homecoming request; }
employeesapicontroller.cs
using system.web.http; namespace employeeservice { [routeprefix("employee")] public class employeesapicontroller : apicontroller { [httppost] [route("insertemployeedepartment")] public employeedepartment insertemployeeanddepartment([frombody]employeedepartment emp) { var xx = emp; } } }
employeedepartment.cs
using system.collections.generic; namespace test { public class employeedepartment { public ienumerable<employee> employees { get; set; } public ienumerable<department> departments { get; set; } } }
models -
employee.cs
public class employee { public int employeeid { get; set; } public string employeename { get; set; } public int age { get; set; } public int salary { get; set; } public int departmentid { get; set; } }
department.cs
public class section { public int deptid { get; set; } public string deptname { get; set; } }
the array passing javascript under
in controller method, value coming null?
what wrong making?
given javascript object array (and not sure if limited 2 entries), can re-write javascript post model mimic webapi request model.
something (remeber limited 2 objects in javascript array).
this.insertemployeedepartment = function (employee) { //construct new object match webapi object var dto = { employees: [employee[0]], //employee[0] employee record departments: [employee[1]] //employee[1] section record }; var request = $http({ method: "post", url: "/employee/insertemployeedepartment", contenttype: "application/json", data: json.stringify(dto) }); homecoming request; }
now if javascript array constructed differently per method have format new model info object differently.
edit:to create match see webapi departmentid
property not on employee[0]
record can re-create on manually. such as.
this.insertemployeedepartment = function (employee) { //construct new object match webapi object employee[0]['departmentid'] = employee[1].deptid; var dto = { employees: [employee[0]], //employee[0] employee record departments: [employee[1]] //employee[1] section record }; var request = $http({ method: "post", url: "/employee/insertemployeedepartment", contenttype: "application/json", data: json.stringify(dto) }); homecoming request; }
javascript c# asp.net-web-api
Comments
Post a Comment