Подтвердить что ты не робот

Передача массива в службу WCF через GET

У меня есть вызов AJAX, который я хочу запустить против службы WCF GET. В принципе, вызов службы (через jquery) выглядит следующим образом:

$.get(serviceEndpoint, {query : "some search text", statusTypes: [1, 2]}, function (result) { /* do something*/ }, 'text');

Когда этот вызов запускается, я вижу, что GET в firebug проходит правильно, и я попал в конечную точку. Однако параметр statusTypes всегда равен нулю.

Сам GET из jquery выглядит так, как будто он закодирован, но когда я не кодирую скобки, вызов вообще не войдет в конечную точку:

http://localhost/Services/SomeService.svc/Endpoint?statusTypes%5B%5D=1&statusTypes%5B%5D=2&query=some+search+text

И сама служба WCF:

[OperationContract]

[WebInvoke (метод = "GET", BodyStyle = WebMessageBodyStyle.WrappedRequest,
ResponseFormat = WebMessageFormat.Json)]

общественности ResultsViewModel GetTags (строковый запрос, int [] statusTypes)

Можно ли передать массив через GET в службу WCF?

Перестановки немногочисленны, поэтому я мог написать отдельную конечную точку "на массив", но я предпочел бы сохранить ее в одном.

4b9b3361

Ответ 1

Возможно, но не с готовым WCF. С помощью "поддержки jQuery" на странице

Ответ 2

Нет, это невозможно. Вы не можете сопоставить массив значений с URL-адресом для параметра. Если вы хотите передать массив, используйте HTTP POST.