Когда я отправляю список 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, кажется, что связующее устройство по умолчанию не может связывать его.
Как я могу решить эту проблему правильно?
ADDED РЕШЕНИЕ
Я использовал решение от Дарина Димитрова с настройкой опции traditional
в jQuery:
$.ajax('@Url.Action("Execute")', {
type: 'POST',
traditional: true,
data: {
pkList: [1,2,3]
}
});
Теперь jQuery больше не добавляет []
к параметрам, и они отправляются следующим образом:
pkList:1
pkList:2
pkList:3
И связующее устройство модели MVC по умолчанию получает значения правильно.
Надеюсь, это поможет кому-то.