Array
(
)

Preencher campos com retorno de função json com jquery

Pjava
   - 13 mar 2014

Tenho esse método no Controller
#Código

[HttpPost]
        public JsonResult PreencheEndereco(string _cpf)
        {
            AgaxturCmsEntities db = new AgaxturCmsEntities();

            try
            {
                var Result = (from a in db.TB_CLIENTES
                              where a.CdCliente == "1" && a.CPF == _cpf
                                select new {
                                    
                                   a.Endereco,
                                   a.Numero,
                                   a.CEP,
                                   a.Complmento,
                                   a.Telefone,
                                   a.Celular
                                
                                }).ToList();

                return Json(new { Result }, JsonRequestBehavior.AllowGet);
            }
            catch (Exception ex)
            {
                return Json(new { Result = ex.Message }, JsonRequestBehavior.AllowGet);
            }
        }

O que eu preciso é fazer uma função jquery e preencher esses 6 campos retornados pela função. Esse é meu esqueleto da função, mas como eu faço agora para preencher?
#Código
function PreencheEndereco() {

    $.ajax({
        url: '/Passos/PreencheEndereco',
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        type: "POST",
        success: function (data) {

            $(data.resultado).each(function () {

            });
        },
        error: function (error) {

        }
    });
}

Agradeço a todos desde já.

Joel Rodrigues
   - 14 mar 2014

Você pode converter o JSON para um objeto e acessar suas propriedades. Veja esse link: http://msdn.microsoft.com/pt-br/library/cc836466(v=vs.94).aspxhttp://msdn.microsoft.com/pt-br/library/cc836466(v=vs.94).aspx

0
|
0

Pjava
   - 14 mar 2014



Bem, fui rtetirando os erros e consegui fazer a minha controller funcionar. Refiz a função jquery e ficou assim:

#Código

$(function () {

        $("#btnEndereco").click(function () {
            $.ajax({
                url: '/Passo/PreencheEndereco',
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                type: "POST",
                data: JSON.stringify({ _cpf: $("#CPF").val() }),
                success: function (data) {

                    $(data.Result).each(function () {

                        $("#endereco").val(this.Endereco);

                    });

                },
                error: function (error) {

                }
            });
        });
    });


Agora nessa linha que acho que deveria inserir o retorno do banco no campo, não funciona. Gostaria de saber se é necessário mais alguma coisa.

#Código
$("#endereco").val(this.Endereco);

0
|
0

Pjava
   - 14 mar 2014

Resolvido. Erro de BIOS. Havioa uma div com o mesmo nome da id endereco e por isso acho que o jquery ficava meio maluco e não sabia quem preencher. Está funcionando.

0
|
0

Joel Rodrigues
   - 14 mar 2014

Legal, só não entendi por que usar a função each se só vai ter um objeto retornando da função.

0
|
0