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