Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ÐCollioni

[Resolvido] Retornar objeto Json com MVC ASP.Net

Recommended Posts

Olá.

 

Tenho um método no Controller MVC ASP.Net que deve retornar um objeto Acao, o qual segue:

 

Acao

{

int Id;

string Nome;

GrupoAcao Grupo;

}

 

Sendo que GrupoAcao é uma outra classe. (Estou utilizando o Entity Framework para abstração do banco).

 

Quando tenho um objeto Acao sem um GrupoAcao associado, o método getJson funciona normalmente. Porém, quanda há um GrupoAcao, a função nem executa.

 

Segue o código do Controller:

 


public ActionResult BuscarAcoes()
{
    var acoes = (from acao in ctx.Acao select acao).ToArray();

    return Json(acoes);
}

E o código Aspx segue:

 

$.getJson("/Json/BuscarAcoes/",
                    function(data) {

                        if (data == '' || data == null) {
                            jAlert("Não foi possível obter os dados para visualização da tabela.");
                            return;
                        }
                        else {

                            $("#tblResultado").html("");

                            var strResultado = "";

                            strResultado += "<tr> <th> Id </th> <th> Nome </th> </tr>";

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

                                strResultado += "<tr>";
                                strResultado += "<td>";
                                strResultado += this.Id;
                                strResultado += "</td>";
                                strResultado += "<td>";
                                strResultado += this.Titulo;
                                strResultado += "</td>";
                                strResultado += "</tr>";
                            });

                            $("#tblResultado").append(strResultado);
                        }
                    });

Alguma ideia de como resolver o problema?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

Tenho um método no Controller MVC ASP.Net que deve retornar um objeto Acao, o qual segue:

 

Acao

{

int Id;

string Nome;

GrupoAcao Grupo;

}

 

Sendo que GrupoAcao é uma outra classe. (Estou utilizando o Entity Framework para abstração do banco).

 

Quando tenho um objeto Acao sem um GrupoAcao associado, o método getJson funciona normalmente. Porém, quanda há um GrupoAcao, a função nem executa.

 

Segue o código do Controller:

 


public ActionResult BuscarAcoes()
{
    var acoes = (from acao in ctx.Acao select acao).ToArray();

    return Json(acoes);
}

E o código Aspx segue:

 

$.getJson("/Json/BuscarAcoes/",
                    function(data) {

                        if (data == '' || data == null) {
                            jAlert("Não foi possível obter os dados para visualização da tabela.");
                            return;
                        }
                        else {

                            $("#tblResultado").html("");

                            var strResultado = "";

                            strResultado += "<tr> <th> Id </th> <th> Nome </th> </tr>";

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

                                strResultado += "<tr>";
                                strResultado += "<td>";
                                strResultado += this.Id;
                                strResultado += "</td>";
                                strResultado += "<td>";
                                strResultado += this.Titulo;
                                strResultado += "</td>";
                                strResultado += "</tr>";
                            });

                            $("#tblResultado").append(strResultado);
                        }
                    });

Alguma ideia de como resolver o problema?

 

Obrigado.

 

Resolvi o problema.

 

O Json não conseguia fazer Get do objeto porque a Acao tinha referência para o GrupoAcao e o GrupoAcao tinha referência para a Acao. Isso é interpretado como "Requisição Circular", ou algo do gênero, e portanto não suportava o Get do objeto.

 

Criei outras classes (Acao e GrupoAcao) diferentes das criadas automaticamente pelo Entity Framework, retirando a referência do GrupoAcao na classe Acao.

 

Se alguém tiver o mesmo problema, fica a dica aí.

 

Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

Tenho um método no Controller MVC ASP.Net que deve retornar um objeto Acao, o qual segue:

 

Acao

{

int Id;

string Nome;

GrupoAcao Grupo;

}

 

Sendo que GrupoAcao é uma outra classe. (Estou utilizando o Entity Framework para abstração do banco).

 

Quando tenho um objeto Acao sem um GrupoAcao associado, o método getJson funciona normalmente. Porém, quanda há um GrupoAcao, a função nem executa.

 

Segue o código do Controller:

 


public ActionResult BuscarAcoes()
{
   var acoes = (from acao in ctx.Acao select acao).ToArray();

   return Json(acoes);
}

 

E o código Aspx segue:

 

$.getJson("/Json/BuscarAcoes/",
                   function(data) {

                       if (data == '' || data == null) {
                           jAlert("Não foi possível obter os dados para visualização da tabela.");
                           return;
                       }
                       else {

                           $("#tblResultado").html("");

                           var strResultado = "";

                           strResultado += "<tr> <th> Id </th> <th> Nome </th> </tr>";

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

                               strResultado += "<tr>";
                               strResultado += "<td>";
                               strResultado += this.Id;
                               strResultado += "</td>";
                               strResultado += "<td>";
                               strResultado += this.Titulo;
                               strResultado += "</td>";
                               strResultado += "</tr>";
                           });

                           $("#tblResultado").append(strResultado);
                       }
                   });

 

Alguma ideia de como resolver o problema?

 

Obrigado.

 

Resolvi o problema.

 

O Json não conseguia fazer Get do objeto porque a Acao tinha referência para o GrupoAcao e o GrupoAcao tinha referência para a Acao. Isso é interpretado como "Requisição Circular", ou algo do gênero, e portanto não suportava o Get do objeto.

 

Criei outras classes (Acao e GrupoAcao) diferentes das criadas automaticamente pelo Entity Framework, retirando a referência do GrupoAcao na classe Acao.

 

Se alguém tiver o mesmo problema, fica a dica aí.

 

Valeu.

 

Cara, muito bom. Eu estava com este mesmo problema ao fazer um retorno de uma lista vinda do EF. Resolvi, também, criando objetos específicos para utilização com o JSON. Se alguém souber se isto é um bug da versão do framework e/ou já foi resolvido e/ou tiver alguma outra solução pode postar aqui, né?

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.