Codificando .Net

Aprendizado, companherismo, ensino e aperfeiçoamento constante

Pessoal,
Achei uma coisa muito estranha hoje:

Estou desenvolvendo um projeto em ASP.NET MVC com JQuery. O problema que encontrei foi ao criar uma view na qual, ao digitar um CPF, o sistema busque os dados da pessoa e preencha os demais campos na view.
Pra isso eu criei um método JsonResult no meu controller que retorne esses dados através do método Json(), mais ou menos assim:


public JsonResult ProcuraPessoa(string cpf)
{
    BaseDataContext db = new BaseDataContext();

    var query = from pes in db.Pessoas
    where pes.Cpf.Equals(cpf)
    select pes;
    return Json(query.Single());
}


E na minha view:


$("#cpf").blur( function() {
    $.getJSON("/MeuController/ProcuraPessoa",
    { cpf: $(this).val() },
    function (data) {
        $("#nome").val(data.Nome);
        $("#fone").val(data.Fone);
.......
e assim por diante.


Agora vem o mistério:

Nessa condição de código que eu coloquei, somente em "alguns casos" (que eu não descobri uma relação entre eles), o método funciona e retorna os dados corretamente. Em outros casos não traz absolutamente nada.

Porém (atenção nesse ponto), se eu trocar a declaração do meu método ProcuraPessoa, de JsonResult para ActionResult, funciona sempre, em qualquer situação, mesmo utilizando o método Json() no return do método.

Sinceramente não consegui entender porque com JsonResult funciona às vezes e com ActionResult funciona sempre.

Se alguém já passou por essa e descobriu, por favor se manifeste.

É isso aí!

Responder esta

Patrocínios

Comunidade Daruma 

Revista Mundo .Net 


Editora O'Reilly 


© 2010   Criado por Alexandre Tarifa   Powered by .

Badges  |  Relatar um incidente  |  Termos de serviço

Entrar no bate-papo