envoyer l'Id correcte lorsque je clique sur le boutton de modification

Par hana005, il y a 10 ans


Bonjour,
J'ai un problème de modification des données dans mon code à partir d'une ligne séléctionnée d'une table,je travaille avec angularJS(client) et ASP.net (services rest)
voici mon code de modification:

[Route("api/Students/modifier/{id}")] public async Task<HttpResponseMessage> PUT(int id, Student value) { try { _StudentService.Update(value); await _unitOfWorkAsync.SaveChangesAsync(); } catch (Exception ex) { return Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message); } return Request.CreateResponse(HttpStatusCode.OK); }

voici le code HTML:

<table class="table table-responsive table-hover" ng-controller="etudmodifCtrl"> <thead> </thead> <tbody > <tr ng-repeat="store in currentPageStores> <td align="center">{{store.LastName}}</td> <td align="center">{{store.FirstName}}</td> <td align="center">{{store.Email}}</td> <td align="center" ng-controller="etuddeleteCtrl"> <div id="myModal" class="modal fade" role="dialog" > <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header">....</div> <div class="modal-body"> <div class="form-group"> <label>LastName</label> <div class="col-sm-10"> <input type="text" class="form-control" ng-model="nomet"> </div> </div> <div class="form-group"> <label>FirstName</label> <div class="col-sm-10"> <input type="text" class="form-control" ng-model="prenomet"> </div> </div> <div class="form-group"> <label>Email</label> <div class="col-sm-10"> <input type="text" class="form-control" ng-model="email"> </div> </div> </div> <div class="modal-footer"> <button ng-click="modifetud(store.$id)">OK</button> </div> </div> </div> //this button opens the modal in which I will modify the data <button ng-click="open(store.$id)" data-target="#myModal">Modify</button> </td> </tr></tbody></table>

Le controlleur:

.controller("etudmodifCtrl", ["$scope", "$http", function ($scope, $http) { //I get the data via these method and a correct Id of the selected row $scope.open = function ($id) {$http( {method: 'GET', url:'http://localhost:50001/api/Students/'+$id}) .success(......) .error } $scope.modifetud = function ($id) {$http( {method: 'PUT',url:'http://localhost:50001/api/Students/modifier/'+$id,data:'{"FirstName":"'+$scope.prenomet+'","LastName":"'+$scope.nomet+'","Email"'+$scope.email+'"}'} )} })

Le problème est que la méthode "delete" fonctionne très bien,mais pour la méthode "modifetud" de controlleur "etudmodifCtrl" j'ai toujours 1 comme Id malgré que la méthode "open" envoi correctement l'Id sélectionné à partir de la table,comment alors je peux appliquer la modification sur le Student selon l'Id sélectionné dans la table,par exemple lorsque je choisis le row avec l'Id 6 ,la méthode open() m'envoi l'ID correcte et je peux visualiser les données séléctionnées dans le modal,mais lorsque je clique sur le bouton "OK" pour appeler la méthode "modifetud" j'ai toujours 1 comme Id de plus les données à envoyés ne sont pas envoyés(la modification n'a pas été appliquée )

la requête à envoyé dans le navigateur:

merci pour l'aide

Aucune réponse