Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Metodo PUT passando o xml no bady com visual studio 2103 express web application

Boa note, Devido eu estar utilizando o Visual Studio 2013 Express, nao tenho o template de console application, logo criei um projeto cliente com webapi e mvc, criei o controllerCarrinho e estou utilizando ele para meus testes, porem no methos PUT nao estou conseguindo receber o produto no corpo da mensagem http, estou passando pelo finddler no campo body mas ele nao chega para o contoller. obs : o xml que estou passando no findder é :

<Produto xmlns:i='http://www.w3.org/2001/XMLSchema-instance' xmlns='http://schemas.datacontract.org/2004/07/Loja.Models'>  <Id>123</Id>  <Nome>Produto criado com POST</Nome>  <Preco>100</Preco>  <Quantidade>1</Quantidade>  </Produto>

O methodo PU e este:

[Route("api/carrinho/{idCarrinho}/Produto/{idProduto}/quantidade")]
        public HttpResponseMessage PUT([FromBody] Produto produto, [FromUri] int Idcarrinho, [FromUri] int idProduto)
        {
            var dao = new CarrinhoDAO();
            var carrinho = new Carrinho();
            carrinho = dao.Busca(Idcarrinho);

            carrinho.Troca (produto);

            return Request.CreateResponse(HttpStatusCode.OK);

        }

Alguem poderia me ajudar?

6 respostas

o produto é instanciado e vem todo vazio? o idCarrinho e idProduto chegam normalmente?

Sim o id do carrinho e o id do produto vem normalmente somente a instancia de produto que e passado no cormo pelo frombody não vem...

Passado no corpo da mensagem...

Como voce está fazendo esse PUT na mao? curl?

Paulo Obrigado pela atenção, eu acabei encontrando o probelama aqui. na verdade o erro estava no xml, o namespace dele estava apontando para Loja.Models, e na verdade no meu projeto deveria ser LojaAPI.Models, corrigi isto no xmlsns do xml e deu certo. Obrigado...

solução!

Paulo Obrigado pela atenção, eu acabei encontrando o problema aqui. na verdade o erro estava no xml, o namespace dele estava apontando para Loja.Models, e na verdade no meu projeto deveria ser LojaAPI.Models, corrigi isto no xmlns do xml e deu certo. Obrigado...