Array
(
)

Dificuldade em realimentar um TextBox e uma ComboBox com jquery

Pjava
   - 29 out 2014

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:
#Código

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:
#Código
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);
        }

Joel Rodrigues
   - 30 out 2014

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

0
|
0

Pjava
   - 30 out 2014

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.

0
|
0

Pjava
   - 30 out 2014

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

#Código

<!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 

0
|
0

Pjava
   - 05 nov 2014

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.

0
|
0

Joel Rodrigues
   - 05 nov 2014

Tire o new e deixe apenas:
#Código

return Json(result_carrega_pagina, JsonRequestBehavior.AllowGet);

0
|
0

Pjava
   - 05 nov 2014

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.

#Código

$('#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);
        }
    })
}

0
|
0

Pjava
   - 05 nov 2014

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?

0
|
0

Pjava
   - 05 nov 2014

Esse é o erro que dá:

#Código

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

0
|
0

Pjava
   - 05 nov 2014

Resolvi assim:

#Código

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) {

            $.each(data, function (index, itemData) {
                $('#txtNome').val(itemData.NM_Usuario);
                $('#txtUsuarioRede').val(itemData.Usuario1);
                $('#txtEmail').val(itemData.Email);
                //$('#cbxNivelAcesso').text('Administracao');
            });
        },
        error: function (error) {

            alert(2);
        }
    })
}

0
|
0