Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ivan.Teles

Erro com Asp.NET Web.API + AngularJS

Recommended Posts

Boa noite a todos.


Vou explicar meu problema e vocês tentem me informar onde esta o erro.


Tenho meu método C# assim




[ResponseType(typeof(Categoria))]
public async Task<IHttpActionResult> Post(Categoria model)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if (_repositorio.InsertOrUpdate(model, out Res))
{
_repositorio.Save();
return CreatedAtRoute("DefaultApi", new { id = model.Id }, model);
}
return BadRequest("Erro ao tentar salvar, tente novamente mais tarde");


}


Tenho minha fabrica assim:




.factory("categoriasService", function($http, config, $q) {
var _postItem = function(record) {
var deferred = $q.defer();
$http.post(config.baseUrl + "/api/Categoria/Post", record).then(
function(result) {
deferred.resolve(result.data);
},
function (erroResult) {
deferred.reject();
}
);
return deferred.promise;
};
return {
postItem: _postItem
};
})


Ao chamar em meu controller assim:




.controller("newCategoriaCtrl", [
"$scope", "$http", "$window", "categoriasService", "modalConfirmationService", "$routeParams",
function ($scope, $http, $window, categoriasService, modalConfirmationService, $routeParams) {
if ($routeParams.id !== undefined) {
categoriasService.find($routeParams.id).then(function (result) {
$scope.newCategoria = result;
});
$scope.titleAcao = "Alterar";
} else {
$scope.newCategoria = { Id: 0 };
$scope.titleAcao = "Cadastrar";
}


$scope.save = function() {
//console.log($scope.newCategoria);
categoriasService.postItem($scope.newCategoria)
.then(function (newCategoria) {
console.log(newCategoria);//aqui o objeto está sempre vazio por que acontece o erro 500.
modalConfirmationService.getModalInstance("Sucesso", "Dados salvos com sucesso!");
},
function() {
modalConfirmationService.getModalInstance("Erro", "Não foi possível executar sua ação, tente novamente mais tarde.");
})
.then(function() {
$window.location = "#";
});
};
}
]);


Quando chamo a aplicação sem ativar o debug no console do navegador sempre ocorre erro 500 e não sava a informação na base de dados.


http://localhost:54100/api/Categoria/Post 500 (Internal Server Error)


Mas se eu ativar o modo debug no VS, dá o mesmo erro no console, mas a informação é salva na base de dados.


O que está errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia @Ivan.Teles,

 

Eu não entendo absolutamente nada de C#, mas se deu erro 500 o "erro" é no server, e não no js.

Não tem nada no log ai ?

 

O js parece correto e pelo o que vc descreveu, ele está com o comportamento correto.

Se o server responde 500, então é nele que vc deve mexer para que comece a devolver 200,201..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.