У меня есть HTML-форма, которая содержит элемент <select multiple>
.т.е. пользователь может выбрать более одного варианта из списка.Я использую jQuery для сериализации данных формы и отправки их на контроллер веб-API (ASP.NET MVC).
Проблема в том, что сериализация приводит к строке запроса, содержащей несколько параметров с одинаковым именем.Вот jQuery:
$('#submit').click(function () {
var filters = $('#form').serialize();
$.getJSON("/Api/GetData?" + filters, function (data) {
// Do something with data
});
});
Результирующий вызов API выглядит следующим образом:
/Api/GetData?selection=1234&selection=7432&selection=23
Контроллер API, похоже, принимает только первое значение для параметра 'selection'.Он делает что-то вроде этого:
public void GetData(string selection){
…
}
Мне было интересно, есть ли способ заставить контроллер API обрабатывать параметры как коллекцию, или это должно быть обработано на стороне клиента, то есть путем обеспечения значения параметровотправляются в виде списка через запятую (/Api/GetData?selection=1234,7432,23
).Если последнее, есть ли удобный способ сделать это, а не создавать строку запроса вручную?
Большое спасибо.