Dificuldade em realimentar um TextBox e uma ComboBox com jquery

29/10/2014

0

Não tenho nenhuma dificuldade em passar qualquer valor vindo da minha View para minha controller via jquery. Agora o oposto não consigo nada. Tentei assim:

$('#meutextbox).val() = data.minha_result_da_controller.meu_campo; Assim nada.

$('#meutextbox).text() = data.minha_result_da_controller.meu_campo; Assim nada.

Desse jeito não vira e ainda dá erro de: Internal Server(500).

Como eu faço para alimentar meus campos na View, via jquery com valores vindo da controller.

Minha Jquery:

function CarregaDados(ajaxParameter) {

    var str = "";

    $.ajax({

        url: '/CadastroAcesso/CarregaDadosPagina',
        datatype: 'json',
        contentType: 'application/json;charset=utf-8',
        type: 'POST',
        data: JSON.stringify({ _nivel: ajaxParameter }),
        success: function (data) {

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


e minha controller:

public JsonResult CarregaDadosPagina(int _nivel)
        {
            RupturaEntities db = new RupturaEntities();

            var result_carrega_pagina = db.Usuario
                .Where(n => n.IDUsuario == _nivel)
                .Select(s => new { s.NM_Usuario, s.Usuario1, s.Nivel_Acesso, s.Email }).ToList();

            return Json(new { result_carrega_pagina }, JsonRequestBehavior.AllowGet);
        }
Pjava

Pjava

Responder

Posts

30/10/2014

Joel Rodrigues

Tente passar o parâmetro direto, sem converter para JSON.
Responder

30/10/2014

Pjava

Mas como eu faço isso? Sempre fiz com json e sempre funcionou. O problema está no sucesso do ajax, seja, o retorno do controller. Eu recebo o parâmetro o controller, mas quando envio de volta o resultado da linq, aí dá erro.
Responder

30/10/2014

Pjava

Fazendo debug da minha aplicação, veio esse erro:

<!DOCTYPE html>
<html>
    <head>
        <title>Foi detectada uma referência circular ao serializar um objeto do tipo 'System.Data.Entity.DynamicProxies.Nivel_Acesso_6307FCC211310F19F6F7AC4722969DB04A0A88255ACCC51F4C865C51FCBB1149'.</title>
        <meta name="viewport" content="width=device-width" />
        <style>
         body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;} 
         p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
         b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
         H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
         H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
         pre {font-family:"Consolas","Lucida Console",Monospace;font-size:11pt;margin:0;padding:0.5em;line-height:14pt}
         .marker {font-weight: bold; color: black;text-decoration: none;}
         .version {color: gray;}
         .error {margin-bottom: 10px;}
         .expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }
         @media screen and (max-width: 639px) {
          pre { width: 440px; overflow: auto; white-space: pre-wrap; word-wrap: break-word; }
         }
         @media screen and (max-width: 479px) {
          pre { width: 280px; }
         }
        </style>
    </head>

    <body bgcolor="white">

            <span><H1>Erro de Servidor no Aplicativo '/'.<hr width=100% size=1 color=silver></H1>

            <h2> <i>Foi detectada uma referência circular ao serializar um objeto do tipo 'System.Data.Entity.DynamicProxies.Nivel_Acesso_6307FCC211310F19F6F7AC4722969DB04A0A88255ACCC51F4C865C51FCBB1149'.</i> </h2></span>

            <font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif ">

            <b> Descrição: </b>Ocorreu 
Responder

05/11/2014

Pjava

Estive fora por um tempo e agora voltei para terminar o que eu comecei. Continua dando erro. Ele não entra no sucesso do ajax, ao contrário, ele entra na função Error do ajax.
Responder

05/11/2014

Joel Rodrigues

Tire o new e deixe apenas:
return Json(result_carrega_pagina, JsonRequestBehavior.AllowGet);
Responder

05/11/2014

Pjava

Nem assim Joel. Só não entendo é que tudo que eu faço com ajax e jquery é dessa forma e sempre funcionou e agora não sei porque. Veja o código completo, ele fica dentro de uma função de dbclick, ou seja, ao dar um double click deveria executar uma lambda e devolver o resultado e preencher uma textbox.

$('#nmUsuario').on("dblclick", '.clique', function () {
    CarregaDados($(this).parent().find(".idusuario").text());    
})

function CarregaDados(ajaxParameter) {

    var str = "";

    $.ajax({

        url: '/CadastroAcesso/CarregaDadosPagina',
        datatype: 'json',
        contentType: 'application/json;charset=utf-8',
        type: 'POST',
        data: { _nivel: JSON.stringify(ajaxParameter) },
        success: function (data) {

            alert(1);

            $('#txtNome').val(data.result_carrega_pagina.NM_Usuario);

        },
        error: function (error) {

            alert(2);
        }
    })
}
Responder

05/11/2014

Pjava

Uma dúvida: Se eu envio o parâmetro para executar a lambda no meu controller via data(JSON.stringify), por onde eu recebo o resultado então no jquery e ajax?
Responder

05/11/2014

Pjava

Esse é o erro que dá:

POST http://localhost:53130/CadastroAcesso/CarregaDadosPagina 500 (Internal Server Error) jquery-2.1.0.js:8556send jquery-2.1.0.js:8556jQuery.extend.ajax jquery-2.1.0.js:8084CarregaDados CadastroAcesso.js:178(anonymous function) CadastroAcesso.js:171o.event.dispatch jquery-2.1.0.min.js:3r.handle jquery-2.1.0.min.js:3
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar