Когда я отправляю список 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 по умолчанию получает значения правильно.
Надеюсь, это кому-то поможет.