ASP.NET - AJAX CON WEBSERVICE

   
Vista:

AJAX CON WEBSERVICE

Publicado por Miguel (4 intervenciones) el 22/05/2017 22:22:43
Hola quisiera ver si me pudieran ayudar , lo que pasa que tengo una página en HTML puro y tengo un modal (con bootstrap) de ahi lleno un formulario y recupero esos datos con javascript, entonces quiero enviarlos a un web service en c# para recibirlos y de ahi enviarlos a una clase que me recibe un objeto y de esta manera poder agregarlos a una base de datos, mi duda es como recibo esos valores en el web service y como a su vez los convierto en un objeto para poderlos enviar a mi metodo en una clase..

mi progrmación es la siguiente

js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
$("#btnsave").click(function () {
 
 
      var InfoSend = {
          id_agente : $('#idagen').val(),
          nombre : $('#noma').val(),
          apellido_paterno : $('#apa').val(),
          apellido_materno : $('#ama').val(),
          calle : $('#calleagen').val(),
          colonia : $('#coloniaagen').val(),
          id_ciudad : $('#ciudadagen').val(),
          telefono : $('#telagen').val(),
          fax : $('#faxagen').val(),
          celuar : $('#celagen').val(), 
          email : $('#emailagen').val(),
          cp : $('#cpagen').val(),
          fecha_alta: $('#faagen').val(),
          activo : $('#actagen').val(),
      }
 
      var stringData = JSON.stringify(InfoSend);
      alertify.confirm("¿Estas seguro?",
          function () {
              $.ajax({
                  type: 'POST',
                  url: '../WebServices/ServiceAgent.asmx/NewAgent',
                  data: stringData,
                  contentType: 'application/json; utf-8',
                  dataType: 'json',
                  success: function (data) {
                      alertify.warning("CORRECTO")
                  }
                  },
                  error: function (jqXHR, textStatus, errorThrown) {
                      alertify.warning("INCORRECTO")
                  }
              })
          },
          function () {
              $("#new").modal();
          });
  });

este es mi web service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
namespace Sales.WebServices
{
    /// <summary>
    /// Descripción breve de ServiceAgent
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // Para permitir que se llame a este servicio web desde un script, usando ASP.NET AJAX, quite la marca de comentario de la línea siguiente. 
    [System.Web.Script.Services.ScriptService]
    public class ServiceAgent : System.Web.Services.WebService
    {
 
        [WebMethod]
        public string HelloWorld(string Usuario)
        {
            return "Hola a todos" +Usuario;
        }
 
 
    }
}


Agradeceria muchisimo su ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

AJAX CON WEBSERVICE

Publicado por Carlos (1 intervención) el 31/05/2017 18:11:14
Creo que tienes varios problemas, al parecer no comprendes aun bien la comunicación client-server

Si estas mandando un objeto complejo no puedes esperar que

return "Hola a todos" +Usuario;

va a darte el resultado que esperas. Déjame tratar de explicarte,

Sea cual sea el lenguaje que estés usando en el server, cuando haces un Ajax request lo que se envía para el server es JSON, en forma de string, como bien se ve en tu codigo en la parte del client, estas creando un objeto complejo en javascript, InfoSend = {…}, luego lo estas convirtiendo en string “JSON.stringify(InfoSend)”, y luego lo estas posteando al server donde lo estas reciebiendo como “string Usuario”

Lo que debe estar llegando a tu server(si es que llega, si la url esta bien y demas), es el mismo objeto complejo pero en forma de texto, para poder convertir ese objeto JSON en uno que puedas usar en tu código, debes:

Primero tener una clase que tenga el mismo signature del objeto, o sea los mismos campos con los mismos nombres, luego tienes que deserializar ese json para poder convertirlo en el tipo de tu clase, para eso tienes que usar algún serializador/deserializador de json, como json.net por ejemplo.

Normalmente si usas “.net web api”, la serializacion y deserializacion se hace automáticamente, por lo que tendrías eso adelantado, y no tendrías que recibir el objeto como “string Usuario” en ese caso lo recibirías como “MyClass usuario”.

En este link http://www.newtonsoft.com/json, puedes descargarte el framework de json.net.
Y para deserializar tu Usuario seria algo asi:

MyCalss myClass = JsonConvert.DeserializeObject<MyCalss>(Usuario);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar