Usuário com melhor resposta
Consulta Ajax com Json

Pergunta
-
Boa Tarde
Estou fazendo uma consulta no banco usando Ajax e Json.
Meu script esta funcionando, ele pega o valor do campo, envia para o controller, no controller faz a pesquiza e me retorna um Json com os dados.
O json esta retornando para a view com os dados corretos, mas na hora de o JavaScript adicionar os dados no elemento HTML não esta dando certo.
Tenho certeza que é alguma barberagem que estou fazendo, pois JavaScript ainda é algo cabuloso para mim.
Meu HTML
<p><input type="text" id="txtBusca" name="txtBusca" onblur="ExecutaCliente();" /></p> <p><b>Resultado:</b></p> <p id="resultado"></p>
Meu Script
function ExecutaCliente() { $.ajax({ url: "/Chamado/DropCliente", data: { termo: $("#txtBusca").val() }, type: "post", dataType: "json", beforeSend: function (XMLHttpRequest) { $("#resultado").empty(); $("#resultado").append("inicio"); }, error: function (XMLHttpRequest, textStatus, errorThrown) { $("#resultado").empty(); $("#resultado").append("erro"); }, success: function (data, textStatus, XMLHttpRequest) { $("#resultado").empty(); $(data).each(function () { $("#resultado").append("Nome: " + this.Nome + " Sobrenome:" + this.Sobrenome + " <br/>"); }); } }); }
O retorno do meu Json
Desde ja agradeço
Paulo Marcelo Dalbosco
Respostas
-
Remove essa linha:
dataType: "json",
e tenta denovo pra ver se vai.
http://www.linkedin.com/pub/murilo-kunze/44/191/455
- Editado Murilo Kunze quinta-feira, 7 de fevereiro de 2013 13:08
- Marcado como Resposta Paulo M Dalbosco quinta-feira, 7 de fevereiro de 2013 13:11
Todas as Respostas
-
-
-
-
-
-
-
-
Poise, maluquice cara!! hahahaha
Será que não é tipo que esta vindo do controller? Ele esta me retornando uma list do tipo anonymous.
Paulo Marcelo Dalbosco
- Editado Paulo M Dalbosco quinta-feira, 7 de fevereiro de 2013 11:08
-
Eu mudei a forma de fazer a pesquiza no controller e agora ele me traz um erro dizendo que não conseguiu serializar o objeto. Vou procurar algo na internet!
A circular reference was detected while serializing an object of type 'System.Data.Entity.DynamicProxies.Cliente_BDE42CEBAA664C5717111DD47B8B242BB93A95E675C9E22712FEC58AF362FA5C'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: A circular reference was detected while serializing an object of type 'System.Data.Entity.DynamicProxies.Cliente_BDE42CEBAA664C5717111DD47B8B242BB93A95E675C9E22712FEC58AF362FA5C'.
Paulo Marcelo Dalbosco
-
-
Boa Murilo! Era isso mesmo!
Mas ainda não deu certo! =P
Meu Controller
Dim RetornaJson = (From c In db.Clientes Where c.CNPJ().Contains(termo) Select c.NomeFantasia).ToList Return Json(RetornaJson)
Script
function ExecutaCliente() { $.ajax({ url: "/Chamado/DropCliente", data: { termo: $("#txtBusca").val() }, type: "post", dataType: "json", beforeSend: function (XMLHttpRequest) { $("#resultado").empty(); $("#resultado").append("inicio"); }, error: function (XMLHttpRequest, textStatus, errorThrown) { $("#resultado").empty(); $("#resultado").append("erro"); }, success: function (data, textStatus, XMLHttpRequest) { $("#resultado").empty(); $(data).each(function () { $("#resultado").append("Nome: " + this.NomeFantasia + " <br/>"); }); } }); }
Ele ainda esta caindo no erro, achei curioso agora que ele não tráz mais um objeto com o nome de "NomeFantasia" que é oq o Script espera. Ele esta vindo assim:
Paulo Marcelo Dalbosco
-
Se você quiser trazer como um obj você precisa fazer assim:
Select new { NomeFantasia = c.NomeFantasia }
isso no c#.. no VB eu não sei como é hehe.
Mas então.. ta muito estranho isso.. dá um console.log(XMLHttpRequest) e vê se tem alguma mensagem de erro.
http://www.linkedin.com/pub/murilo-kunze/44/191/455
-
Deu certo criar um objeto!
Dim RetornaJson = (From c In db.Clientes Where c.CNPJ().Contains(termo) Select New With {Key .NomeFantasia = c.NomeFantasia}).ToList
Mas o script ainda não funciona! hahahahaha
Como eu utilizo o "console.log" Murilo? Obrigado.
Paulo Marcelo Dalbosco
-
error: function (XMLHttpRequest, textStatus, errorThrown) { console.log(XMLHttpRequest); $("#resultado").empty(); $("#resultado").append("erro"); },
ai na aba 'Console' do navegador você olha as propriedades do objeto que vai aparecer.http://www.linkedin.com/pub/murilo-kunze/44/191/455
-
Eu não entendi muita coisa do retorno do console! hahahaha
Mas me chamou a atenção o Status Text : parsererror
Paulo Marcelo Dalbosco
- Editado Paulo M Dalbosco quinta-feira, 7 de fevereiro de 2013 13:06
-
Remove essa linha:
dataType: "json",
e tenta denovo pra ver se vai.
http://www.linkedin.com/pub/murilo-kunze/44/191/455
- Editado Murilo Kunze quinta-feira, 7 de fevereiro de 2013 13:08
- Marcado como Resposta Paulo M Dalbosco quinta-feira, 7 de fevereiro de 2013 13:11
-
-
Acho que é porque você está retornando os dados como string e não está o usando o método Json() né?
Nesse caso o jquery tenta fazer o parse da string mas acaba não conseguindo(não sei porquê).
Ai se você tira aquela linha, ele não tenta mais fazer o parse.
http://www.linkedin.com/pub/murilo-kunze/44/191/455
-