none
Enviar a Guardar resultado de Servicio web RRS feed

  • Pregunta

  • Hola comunidad, tengo el siguiente problema, estoy consumiendo un servicio Web a travez de AJAX este retorna un listado de tipo JSON,necesito enviar a guardar a la base de datos cada item de ese listado llamando un método que esta en mi codeBehind, como puedo hacer esto.

    Esta es la forma en que llamo el metodo del servicio a travez de ajax :

    function RecibirMensajeDesdeWCF() {                
            $.ajax({
                type: "POST",
                url: "ServicioWCF",
                data: "parametrosMetodo" }}",
                contentType: "application/json;charset=utf-8",
                dataType: "json",
                async: false,
                crossDomain: true,
                //complete: function (jqXHR, Status){
                //    JSONResponse = ResponseData.d;
                //    //alert(JSON.stringify(JSONResponse));
                //    alert(ResponseData.d.CompanyCode);
                //},
                success: function (data, status, jqXHR) {
                    var contactos = (typeof data.d) == 'string' ?
                               eval('(' + data.d + ')') :
                               data.d;               
                    for (var i = 0; i < contactos.length; i++) {
                        // aca itero cada item del listado y cada item tengo que guardarlo en mi bd
                    }
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    alert(textStatus);
                }
            });
        }

    Gracias por su atencion


    Sergio Fernandez Cruz Life Run's of Code


    viernes, 7 de julio de 2017 4:39

Respuestas

  • necesito enviar a guardar a la base de datos cada item de ese listado llamando un método que esta en mi codeBehind

    Puedes hacerlo usando de nuevo $ajax, pero esta vez apuntando la url a tu code-behind, en lugar de al servicio web.

    Pero, ¿tiene sentido hacerlo así? Es decir, estás usando el código cliente en el navegador para "bombear" datos desde un servicio web hacia tu code-behind, con lo que los datos están circulando dos veces a través de la conexión a internet del puesto cliente. ¿No sería preferible hacerlo directamente desde el servidor, para evitar el doble viaje por la red? Simplemente haz la llamada al servicio web desde el code-behind (usando p.ej. el WebClient en lugar de $.ajax), luego deserializa los datos JSON usando por ejemplo NewtonSoft.Json, y el resultado es una clase que puedes salvar directamente en base de datos usando tu capa de datos.

    viernes, 7 de julio de 2017 6:10