none
problema con $.ajax RRS feed

  • Pregunta

  • Hola a todos, estoy intentando acceder a un método de acción desde una vista, es una llamada sencilla de prueba pero no funciona, os pongo los códigos de las dos partes a ver si veis algo que yo no veo:

     - en la vista

    • $.ajax({

      type: "POST",

          url: '@Url.Action("AjaxTareas","Tareas", new { area= "Area_Tareas"})',

          contentType: 'application/json; charset=utf-8',

          dataType: 'json',

          data: { id : "1" },

          success: function (resultado) {

               alert(resultado);

          }, error: function (xhr, testStatus, error) { alert("error"); }

      });

      - en el controlador

    [HttpPost]

    public ActionResult AjaxTareas(string id)

    {

        var GT1 = DB.DB.MisGTareas.Find(id);

        var Lista = GT1.ListaTemas;

        //var datos = Json(Lista, JsonRequestBehavior.AllowGet);

        var datos = Json("Hola");

        return datos;

    }

    al controlador no llega el valor del parámetro id, y el método success recoge un valor de resultado null, pero yo no veo donde está el fallo

    un saludo y gracias

    sábado, 25 de enero de 2014 8:52

Respuestas

  • y si usas


    var params = new Object();

    params.id = "1";

    $.ajax({ type: "POST", url: '@Url.Action("AjaxTareas","Tareas", new { area= "Area_Tareas"})', contentType: 'application/json; charset=utf-8', dataType: 'json', data: JSON.stringify(params), .


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta fjjcent sábado, 25 de enero de 2014 14:53
    sábado, 25 de enero de 2014 14:16

Todas las respuestas

  • hola

    pero la invocacion se realiza no? o sea si pones un breakpoint en el action se detene la ejecucion

    por lo del valor intenta usando

    var params = new {
       id: "1"
    };
    
    $.ajax({
    
    type: "POST",
    
        url: '@Url.Action("AjaxTareas","Tareas", new { area= "Area_Tareas"})',
    
        contentType: 'application/json; charset=utf-8',
    
        dataType: 'json',
    
        data: params,
    
    .
    
    .

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    sábado, 25 de enero de 2014 11:51
  • Tu línea tal como la tienes genera un error de tipo que dice que  "Uncaught Type Error object is not a function" y la cabecera de la línea es

    es curioso que la llamada Ajax se para en los puntos de interrupción cunado en la llamada de $.Ajax no se incluye el parámetro "data: xxx" pero en cuanto lo incluyes no da error y de hecho vuelve a success y ejecuta su contenido, pero no se para en el paso a paso, y en cuanto quitas el data vuelve a pararse, el código completo de la llamada ahora es:

      

    var

    para = new{ id : "1"};

                 $.ajax({ type:

    "POST",

                    url:

    '@Url.Action("AjaxTareas","Tareas", new{ area= "Area_Tareas"})',

    contentType:

    'application/json; charset=utf-8',

                    dataType:

    'json', data: para,

                    success:

    function(resultado) {

                         alert(resultado);

                    }, error:

    function(xhr, testStatus, error) { alert("error"); }

                });

    sábado, 25 de enero de 2014 14:12
  • y si usas


    var params = new Object();

    params.id = "1";

    $.ajax({ type: "POST", url: '@Url.Action("AjaxTareas","Tareas", new { area= "Area_Tareas"})', contentType: 'application/json; charset=utf-8', dataType: 'json', data: JSON.stringify(params), .


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta fjjcent sábado, 25 de enero de 2014 14:53
    sábado, 25 de enero de 2014 14:16
  • así si funciona gracias Leandro. 
    sábado, 25 de enero de 2014 14:52