i working on project in have used angularjs , mvc.i passing data angular js controller mvc controller $http.post().for using single object/json array retreive data -public bool updateissuedetails(issuebo issue).but want if public public bool updateissuedetails(issuebo issue,list lstmemberstonotify).i want send 2 json arrays ny angular js controller above mvc controller method.
angularjs controller code
$scope.saveissuedetails = function (issue) { var milestoneid = ""; var milestonename = ""; if ($scope.selectedissue.milestone== undefined) { milestoneid = ""; milestonename = ""; } else { milestoneid = $scope.selectedissue.milestone.id; milestonename = $scope.selectedissue.milestone.name; } var arrmemberstonotify = []; var arrmemberstonotifynew = []; var icount = 0; $("#memberstonotify input[type=checkbox]:checked").each(function () { arrmemberstonotify = $(this).val().split("~"); arrmemberstonotifynew.push({ "userid": arrmemberstonotify[0], "userdisplayname": arrmemberstonotify[1], "email": arrmemberstonotify[2] }); }); var issuedetails = { id: issue.id, projectid: issue.projectid, projectname: issue.projectname, issuestatusid: $scope.selectedissue.status.id, statusname: $scope.selectedissue.status.name, issuepriorityid: $scope.selectedissue.priority.id, priorityname: $scope.selectedissue.priority.name, assigneduserid: $scope.selectedissue.assignedto.id, assigneedisplayname: $scope.selectedissue.assignedto.displayname, issuecategoryid: $scope.selectedissue.category.id, categoryname: $scope.selectedissue.category.name, duedate: $scope.selectedissue.duedate, owneruserid: $scope.selectedissue.ownedby.id, ownerdisplayname: $scope.selectedissue.ownedby.displayname, issuetypeid: $scope.selectedissue.type.id, issuetypename: $scope.selectedissue.type.name, issueresolutionid: $scope.selectedissue.resolution.id, resolutionname: $scope.selectedissue.resolution.name, milestoneid: milestoneid, milestonename: milestonename, estimation: $scope.selectedissue.estimation, progress: $scope.selectedissue.progress, }; var url = window.location.protocol + '//' + window.location.host + '/api/issues' + '/updateissuedetails/'; $http.post(url, [issuedetails, arrmemberstonotifynew]).success(function (data, status, headers, config) { if (data != '' || data.length >= 0 || data == true) { //$scope.selectedissue = issue; //$scope.showissuedetails($scope.selectedissue); $scope.getassignedissues(); } else if (data == '' || data == false) { $scope.selectedissue = null; } else { $scope.errors.push(data.error); } }); };
mvc controller code
[httppost] [authenticationrequired] public bool updateissuedetails(issuebo issue,list<issuenotification> lstmemberstonotify) { try { //var issuedetails = jsonconvert.deserializeobject<dictionary<string, dynamic>>(issuealldetails[0].tostring()); //list<dictionary<string, string>> memberstonotifydetails = jsonconvert.deserializeobject<list<dictionary<string, string>>>(issuealldetails[1].tostring()); var memberstonotify = lstmemberstonotify.select(memberstonotifydetail => new issuenotification() { userid =memberstonotifydetail.userid, email = memberstonotifydetail.email, userdisplayname = memberstonotifydetail.userdisplayname }).tolist(); var newissue = new issuebo { owneruserid = issue.owneruserid, ownerdisplayname = issue.ownerdisplayname, lastupdateduserid = sessionitems.userid, lastupdaterdisplayname = sessionitems.displayname, lastupdatedon = datetime.now, projectid = issue.projectid, projectname = issue.projectname, id = issue.id, assigneduserid = issue.assigneduserid, assigneedisplayname = issue.assigneedisplayname, issuestatusid = issue.issuestatusid, statusname = issue.statusname, progress = issue.progress, issuepriorityid = issue.issuepriorityid, priorityname = issue.priorityname, issuetypeid = issue.issuetypeid, issuetypename = issue.issuetypename, issuecategoryid = issue.issuecategoryid, categoryname = issue.categoryname, issueresolutionid = issue.issueresolutionid, resolutionname = issue.resolutionname, duedate = issue.duedate, estimation = issue.estimation, milestoneid = issue.milestoneid, milestonename = issue.milestonename }; var result = bll.adminlayer.updateissuedetail(newissue, memberstonotify); return result.issuccessful && result.result; } catch (exception ex) { bll.base.baselayer.writeapplicationlog(ex); return false; } }
i passing 2 json array angularjs controller this-$http.post(url, [issuedetails, arrmemberstonotifynew]).success(function (data, status, headers, config).but getting error trying this.please suggest how achieve this.thanks
you need pass data action using json.stringify()
$http.post(url, json.stringify({ issue: issuedetails, lstmemberstonotify: arrmemberstonotifynew });
Comments
Post a Comment