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

Popular posts from this blog

java - How to set log4j.defaultInitOverride property to false in jboss server 6 -

c - GStreamer 1.0 1.4.5 RTSP Example Server sends 503 Service unavailable -

Using ajax with sonata admin list view pagination -