如何在angularjs和asp.net webAPI中创建方法更新用户
我有一个crud的用户,函数添加和删除作品,但编辑方法不工作,这是我的代码。这个错误如何在angularjs和asp.net webAPI中创建方法更新用户,angularjs,asp.net-web-api,asp.net-identity,Angularjs,Asp.net Web Api,Asp.net Identity,我有一个crud的用户,函数添加和删除作品,但编辑方法不工作,这是我的代码。这个错误 ---: Failed to load http://localhost:14539/api/Users: Response for preflight has invalid HTTP status code 405.-------------------------------------------------------------------- 使用的代码: $scope.userEdit = fu
---: Failed to load http://localhost:14539/api/Users: Response for preflight has invalid HTTP status code 405.--------------------------------------------------------------------
使用的代码:
$scope.userEdit = function () {
console.log('edit');
var idsForEdit = [];
angular.forEach($scope.listeOfUsers, function (item,$uibModalInstance, index) {
console.log($scope.listeOfUsers);
if (item.checked) {
console.log(item.checked);
console.log(item);
// idsForEdit.edit(item);
$scope.registration.Email=item.Email;
$scope.registration.Password=item.PasswordHash;
$scope.registration.Users_Role=item.Role;
$scope.registration.Site=item.Site;
$scope.ok = function () {
console.log("ok");
$scope.user=item;
console.log($scope.user);
User.Update({
id: item.Id
}, function (response) {
console.log(response);
console.log("ok");
SweetAlert.swal({
title: "Opération effectuée avec succès!",
text: "Click pour quitter!",
type: "success"
});
$state.go($state.current, $stateParams, {
reload: true,
inherit: false,
notify: true
});
$uibModalInstance.close();
},
function (err) {
});
console.log($scope.user);
};
}
});
//$scope.isEditDirty==true;
};
和这个user.controller:
[ResponseType(typeof(void))]
// [HttpPut]
[AcceptVerbs("OPTIONS")]
public IHttpActionResult PutUsers(string id, Users users)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if (id != users.Id)
{
return BadRequest();
}
db.Entry(users).State = EntityState.Modified;
try
{
db.SaveChanges();
}
catch (DbUpdateConcurrencyException)
{
if (!UsersExists(id))
{
return NotFound();
}
else
{
throw;
}
}
return StatusCode(HttpStatusCode.NoContent);
}
由于控制器方法设置为接受
OPTIONS
请求,而不是PUT
请求,因此您得到的是HTTP 405。您需要更改循环逻辑。您正在为用户列表中的每个项目设置$scope
上的值。最终结果是,$scope
将具有列表中最后一个条目的值。我怀疑这是你想要的。@Jon,是的,但如何更正此问题如何更正此问题,更改请求“选项”?取消注释/[HttpPut]
并删除[AcceptVerbs(“选项”)]
我更改了代码,现在问题来了: