none
Problemas com simples Ajax no MVC 4 com JSON RRS feed

  • Pergunta

  • Olá a todos!

    Por favor, preciso de ajuda com um request de AJAX simples.

    O que eu preciso é que ao clicar no botão Buscar, seja enviado ao meu Controller que irá buscar no banco e retornar o endereço.

    A minha maior dificuldade está em como usar o Ajax para conversar assincronamente com o Controller.

    Por favor, se possível gostaria de saber como faço usando puramente Ajax no jQuery, e tbm se temuma forma de fazer utilizando os Helpers do MVC.

    Segue Abaixo meu código:

    CepsController.cs

    public class CepsController : Controller
    {
        private IEnderecoRepository repository;
    
        public CepsController(IEnderecoRepository _repository) {
            this.repository = _repository;
        }
        //
        // GET: /Ceps/
    
        public ActionResult Index()
        {
            return View();
        }
    
        public JsonResult(string cepDigitado) {
            var endereco = repository.Enderecos.AsQueryable();
    
            if (!string.IsNullOrEmpty(Convert.ToString(cepDigitado))) {
                endereco = endereco.Where(e => e.Cep == cepDigitado);
            }
            
            return Json(endereco.Select(e => new { Endereco = e.EnderecoCompleto, IdBairro = e.IdBairro, IdCidade = e.IdCidade }), JsonRequestBehavior.AllowGet);
        }
    }

    Index.cshtml

    <h2>Index</h2>
    <label for="cep">Digite seu CEP:</label>
    <input type="button" id="btnGet" value="Buscar" />
    
    @Html.TextBox("txtCep")
    <br />
    @Html.TextBox("txtEndereco")
    <br />
    @Html.TextBox("txtBairro")
    <br />
    @Html.TextBox("Cidade")
    
    <script>
        $(document).ready(function() {
            $("#btnGet").click(function () {
    	    //AQUI NAO SEI COMO FAÇO
            });
        });
    </script>


    Obrigado!

    quarta-feira, 3 de abril de 2013 20:29

Respostas

  • Faça isso :

    <script>
        $(document).ready(function() {
            $("#btnGet").click(function () {
    	    
    $.ajax({
    type:"POST",
    url:"/Ceps/Cep",
    data:"{cepDigitado:12345-678}",
    dateType:"json",
    contentType:"application/json;charset=utf-8",
    beforeSend:function(){ alert("To indo"); },
    success:function(data){
    $(data).each(function(){
    
    alert(this.Endereco);
    
    });
    
    },
    error:function(erro){
    
    alert(erro.responseText);
    }
    
    });
    
    
            });
        });
    </script>

    Espero ter ajudado mude isso também :

     public ActionResult Cep(string cepDigitado) {
            var endereco = repository.Enderecos.AsQueryable();
    
            if (!string.IsNullOrEmpty(Convert.ToString(cepDigitado))) {
                endereco = endereco.Where(e => e.Cep == cepDigitado);
            }
            
            return Json(endereco.Select(e => new { Endereco = e.EnderecoCompleto, IdBairro = e.IdBairro, IdCidade = e.IdCidade }), JsonRequestBehavior.AllowGet);
        }
    }

    Ou seja deixei no CEP e como ActionResult.

    Espero ter ajudado


    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br



    • Editado Davi Murilo quarta-feira, 3 de abril de 2013 20:39
    • Sugerido como Resposta Afonso Fernandes quinta-feira, 4 de abril de 2013 14:22
    • Marcado como Resposta Leandrohpa quinta-feira, 4 de abril de 2013 14:27
    quarta-feira, 3 de abril de 2013 20:38

Todas as Respostas

  • Faça isso :

    <script>
        $(document).ready(function() {
            $("#btnGet").click(function () {
    	    
    $.ajax({
    type:"POST",
    url:"/Ceps/Cep",
    data:"{cepDigitado:12345-678}",
    dateType:"json",
    contentType:"application/json;charset=utf-8",
    beforeSend:function(){ alert("To indo"); },
    success:function(data){
    $(data).each(function(){
    
    alert(this.Endereco);
    
    });
    
    },
    error:function(erro){
    
    alert(erro.responseText);
    }
    
    });
    
    
            });
        });
    </script>

    Espero ter ajudado mude isso também :

     public ActionResult Cep(string cepDigitado) {
            var endereco = repository.Enderecos.AsQueryable();
    
            if (!string.IsNullOrEmpty(Convert.ToString(cepDigitado))) {
                endereco = endereco.Where(e => e.Cep == cepDigitado);
            }
            
            return Json(endereco.Select(e => new { Endereco = e.EnderecoCompleto, IdBairro = e.IdBairro, IdCidade = e.IdCidade }), JsonRequestBehavior.AllowGet);
        }
    }

    Ou seja deixei no CEP e como ActionResult.

    Espero ter ajudado


    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br



    • Editado Davi Murilo quarta-feira, 3 de abril de 2013 20:39
    • Sugerido como Resposta Afonso Fernandes quinta-feira, 4 de abril de 2013 14:22
    • Marcado como Resposta Leandrohpa quinta-feira, 4 de abril de 2013 14:27
    quarta-feira, 3 de abril de 2013 20:38
  • Faça isso :

    <script>
        $(document).ready(function() {
            $("#btnGet").click(function () {
    	    
    $.ajax({
    type:"POST",
    url:"/Ceps/Cep",
    data:"{cepDigitado:12345-678}",
    dateType:"json",
    contentType:"application/json;charset=utf-8",
    beforeSend:function(){ alert("To indo"); },
    success:function(data){
    $(data).each(function(){
    
    alert(this.Endereco);
    
    });
    
    },
    error:function(erro){
    
    alert(erro.responseText);
    }
    
    });
    
    
            });
        });
    </script>

    Espero ter ajudado mude isso também :

     public ActionResult Cep(string cepDigitado) {
            var endereco = repository.Enderecos.AsQueryable();
    
            if (!string.IsNullOrEmpty(Convert.ToString(cepDigitado))) {
                endereco = endereco.Where(e => e.Cep == cepDigitado);
            }
            
            return Json(endereco.Select(e => new { Endereco = e.EnderecoCompleto, IdBairro = e.IdBairro, IdCidade = e.IdCidade }), JsonRequestBehavior.AllowGet);
        }
    }

    Ou seja deixei no CEP e como ActionResult.

    Espero ter ajudado


    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br



    Olá Davi, Obrigado pela ajuda, resolveu meu problema.

    Abraços!


    “The mind that opens to a new idea never returns to its original size.”

    quinta-feira, 4 de abril de 2013 14:28