none
Como ejecutar ajax con MVC 4 RRS feed

  • Pregunta

  • Hola

    Estaba tratando de hacer un ajax en MVC 4 con Jquery, mi metodo es bastante básico...

    ajax: function (url, params, metodoExitoso, metodoError, asicrono) {
     try {
      $.ajax({
       type: "POST",
       url: "/ajax/webservice.asmx/metodo",
       data: params,
       contentType: "application/json; charset=utf-8",
       dataType: "json",
       async: asicrono,
       success: metodoExitoso,
       error: metodoError
      });
     } catch (e) { }
    }

    Codigo Web Service webservice.asmx:

    [WebMethod]
    public DTOJson Metodo(int value)
    {
    }

    Y nada que funcionaba, no consigue la ruta del web service...

    Leyendo por internet y haciendo unos ajustes, logre hacer que funcionara, haciendo las siguientes correcciones:

    1- Colocando el metodo en lugar de un web services "asmx" en un controlador, algo asi...

     public JsonResult Metodo(int value)
    {
     return Json(data, JsonRequestBehavior.AllowGet);
    }

    2- Seteando la url del controlador:

    url: "/Locations/ObtenerRegiones"

    Ahora bien... Tengo las siguientes preguntas:

    1- Como puedo hacerlo funcional con un web service?

    2- Independientemente la primera pregunta, cual seria la ventaja de o desventaja de hacerlo con controlador o con web service?

    Gracias

    jueves, 31 de octubre de 2013 15:57

Respuestas

  • hola

    pero estas seguro que al definir

    url: "/ajax/webservice.asmx/metodo",

    es la url correcta ?

    que pasa si pones la url completa, o sea

    http://sitio/ajax/webservice.asmx/metodo

    Independientemente la primera pregunta, cual seria la ventaja de o desventaja de hacerlo con controlador o con web service?

    la ventaja es que te mentienes dentro del modelo de asp.net mvc

    tambien puede devolver JsonResult lo cual retorna la info serializada de forma nativa

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Zr-.- sábado, 2 de noviembre de 2013 1:10
    jueves, 31 de octubre de 2013 18:07
  • Existe alguna ventaja como de seguridad, desempeño o algo asi?

    existe la ventaja que puedes definirle el verbo, o sea [HttpPost] o [HttpGet], la idea es al final poder usar WebApi

    despues son simple servicio, el objetivo se consigue es el mismo

    si el servicio puede estar integrado dentro de la funcionalidad web siempre es mas facil mantenerlo, ademas estas usnado servicios de asp.net en lugar de usar los de WCF

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Zr-.- sábado, 2 de noviembre de 2013 1:10
    jueves, 31 de octubre de 2013 19:11
  • Deberia usar los de wcf para esos casos tambien? Cual es la razón?

    en realidad depende, si es algo muy simple con asmx alcanzaria

    aunque usar tecnologias un poco mas avanzadas seria una buena idea ya que webapi y wcf permiten definir OData para crear la funcionalidad

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Zr-.- sábado, 2 de noviembre de 2013 1:10
    viernes, 1 de noviembre de 2013 16:32

Todas las respuestas

  • hola

    pero estas seguro que al definir

    url: "/ajax/webservice.asmx/metodo",

    es la url correcta ?

    que pasa si pones la url completa, o sea

    http://sitio/ajax/webservice.asmx/metodo

    Independientemente la primera pregunta, cual seria la ventaja de o desventaja de hacerlo con controlador o con web service?

    la ventaja es que te mentienes dentro del modelo de asp.net mvc

    tambien puede devolver JsonResult lo cual retorna la info serializada de forma nativa

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Zr-.- sábado, 2 de noviembre de 2013 1:10
    jueves, 31 de octubre de 2013 18:07
  • hola

    pero estas seguro que al definir

    url: "/ajax/webservice.asmx/metodo",

    es la url correcta ?

    que pasa si pones la url completa, o sea

    http://sitio/ajax/webservice.asmx/metodo

    Independientemente la primera pregunta, cual seria la ventaja de o desventaja de hacerlo con controlador o con web service?

    la ventaja es que te mentienes dentro del modelo de asp.net mvc

    tambien puede devolver JsonResult lo cual retorna la info serializada de forma nativa

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Hola... Estaba cometiendo un error tonto con el web service... Ya logre que funcionara con el archivo .asmx.

    Me comentas que la ventaja es que te mantiene en el modelo de aspx.net mvc, pero no entiendo muy bien la ventaja de esto, es mas bien una ventaja o simplemente una forma de manejarlo? Existe alguna ventaja como de seguridad, desempeño o algo asi?

    jueves, 31 de octubre de 2013 18:45
  • Existe alguna ventaja como de seguridad, desempeño o algo asi?

    existe la ventaja que puedes definirle el verbo, o sea [HttpPost] o [HttpGet], la idea es al final poder usar WebApi

    despues son simple servicio, el objetivo se consigue es el mismo

    si el servicio puede estar integrado dentro de la funcionalidad web siempre es mas facil mantenerlo, ademas estas usnado servicios de asp.net en lugar de usar los de WCF

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Zr-.- sábado, 2 de noviembre de 2013 1:10
    jueves, 31 de octubre de 2013 19:11
  • Existe alguna ventaja como de seguridad, desempeño o algo asi?

    existe la ventaja que puedes definirle el verbo, o sea [HttpPost] o [HttpGet], la idea es al final poder usar WebApi

    despues son simple servicio, el objetivo se consigue es el mismo

    si el servicio puede estar integrado dentro de la funcionalidad web siempre es mas facil mantenerlo, ademas estas usnado servicios de asp.net en lugar de usar los de WCF

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Gracias, bueno efectivamente uso los servicios de asp.net y no los de WCF, a pesar de que trabajo con WCF "en aplicaciones como tal", a la hora de usar un servicio el cual estara en la aplicación web y sera usado solo para ajax he tenido la costumbre de usar los .asmx.

    Deberia usar los de wcf para esos casos tambien? Cual es la razón?

    viernes, 1 de noviembre de 2013 15:05
  • Deberia usar los de wcf para esos casos tambien? Cual es la razón?

    en realidad depende, si es algo muy simple con asmx alcanzaria

    aunque usar tecnologias un poco mas avanzadas seria una buena idea ya que webapi y wcf permiten definir OData para crear la funcionalidad

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Zr-.- sábado, 2 de noviembre de 2013 1:10
    viernes, 1 de noviembre de 2013 16:32
  • Gracias por todas las respuestas...
    sábado, 2 de noviembre de 2013 1:10
  • como le hago para que un metodo ajax como el ejemplo de arriba me lo ejecute mi controlador soy nuevo en MVC4 y no lo he posido hacer ..

    gracias ..

    viernes, 6 de diciembre de 2013 16:41