jQuery AJAX parámetro no se pasa a MVC

Estoy un poco atascado en lo que probablemente es una situación común, pero no puede encontrar mucho en el camino de las soluciones.

Estoy pasando un único parámetro int a un controlador MVC método, esperando una respuesta Json de la espalda. El problema es que el parámetro, mientras que se rellenan en el cliente final, no está siendo reconocido en el servidor y se interpreta como null.

Aquí está el código:

function getBatches(p) {
$.ajax({
    type: "GET",
    data: "{'ProjectID': " + p + "}",
    url: "/Home/Batches",
    success: function(msg) {
        populateBatches(msg);
    }
});

}

El valor de p es un número entero. En el extremo del servidor, el código es el siguiente:

[AcceptVerbs(HttpVerbs.Get)]
public JsonResult Batches(int ProjectID)
{
    return Json(TimeHelper.GetBatchesForProject(ProjectID));
}

He intentado modificarlo ligeramente para que el lado del servidor int argumento es que aceptan valores null (es decir,int? ProjectID), pero de nuevo, que no parece ayudar. El problema está en algún lugar en la traducción. Ideas?

InformationsquelleAutor Phil.Wheeler | 2009-09-12

1 Kommentar

  1. 13

    data debe ser un objeto de Javascript literal:

    $.ajax({
        type: "GET",
        data: {ProjectID: p},
        url: "/Home/Batches",
        success: function(msg) {
            populateBatches(msg);
        }
    });
    • Excelente! Tengo en uno. Bien hecho, que hombre!!!
    • No funciona para mí. ¿Esto sólo funcionará para los enteros?

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea