Параметр jQuery AJAX не передается в MVC - PullRequest
3 голосов
/ 12 сентября 2009

Я немного застрял в том, что, вероятно, является обычной ситуацией, но не могу найти много решений.

Я передаю единственный параметр int методу контроллера MVC, ожидая ответ Json. Проблема в том, что этот параметр, хотя и заполняется на стороне клиента, не распознается на стороне сервера и интерпретируется как нулевой.

Вот код:

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

}

Значение p является целым числом. На стороне сервера код выглядит так:

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

Я попытался немного его изменить, чтобы аргумент int на стороне сервера мог иметь значение null (т. Е. int? ProjectID), но, опять же, это не помогает. Проблема где-то в переводе. Идеи?

1 Ответ

13 голосов
/ 12 сентября 2009

data должен быть литералом объекта Javascript:

$.ajax({
    type: "GET",
    data: {ProjectID: p},
    url: "/Home/Batches",
    success: function(msg) {
        populateBatches(msg);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...