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í!
Tags:
-
▶ Responder esta