Как отправить список int с помощью jQuery в средство связывания модели ASP.net MVC по умолчанию

Когда я отправляю список int с помощью jQuery следующим образом:

$.ajax('@Url.Action("Execute")', {
    type: 'POST',
    data: {
        pkList: [1,2,3]
    }
});

Затем jQuery преобразует объект pkList и отправляет его по почте следующим образом:

pkList[]:1
pkList[]:2
pkList[]:3

Что будет хорошо, если сервером является PHP, но я использую Asp.NET MVC3 и пытаюсь получить эти значения с помощью привязки модели по умолчанию:

public ActionResult Execute(ICollection<int> pkList)

Но pkList всегда имеет значение null, похоже, что привязка модели по умолчанию не может связать его.

Как мне решить эту проблему?


ДОБАВЛЕНО РЕШЕНИЕ

Я использовал решение Дарина Димитрова с установкой традиционного параметра в jQuery:

$.ajax('@Url.Action("Execute")', {
    type: 'POST',
    traditional: true,
    data: {
        pkList: [1,2,3]
    }
});

Теперь jQuery не работает добавьте [] к параметрам больше, и они будут отправлены следующим образом:

pkList:1
pkList:2
pkList:3

И связыватель модели MVC по умолчанию получает значения правильно.

Надеюсь, это кому-то поможет.

16
задан Marc 29 October 2011 в 02:48
поделиться