Tôi có một chức năng tương tự trong cấu trúc này:Đi qua một danh sách các int đến một HttpGet yêu cầu
[HttpGet]
public HttpResponseMessage GetValuesForList(List<int> listOfIds)
{
/* create model */
foreach(var id in listOfIds)
model.Add(GetValueForId(id)
/* create response for model */
return response;
}
Tuy nhiên, khi tôi làm một yêu cầu GET cho phương pháp:
{{domain}}/Controller/GetValuesForList?listOfIds=1&listOfIds=2
tôi nhận được một lỗi khi gỡ lỗi ghi rằng listOfIds
là null. Trong bộ điều khiển của chúng ta, chúng ta có một số phương thức HttpGet công cộng hoạt động tốt, và khi thay đổi tham số thành một int duy nhất nó hoạt động. Tôi đã thử thay đổi loại tham số thành int[]
và IEnumerable<int>
cũng vậy, nhưng không thay đổi.
Tuy nhiên, khi thay đổi cuộc gọi thành HttpPost và chuyển danh sách dưới dạng giá trị x-www-form-urlencoded, phương thức hoạt động.
Có thể chuyển danh sách sang phương thức Nhận hoặc tôi có phải sử dụng Đăng không? Vì nó không thực sự là một phương thức bài (vì nó trả về một mô hình JSON các giá trị và không có gì được lưu vào máy chủ).
Hãy xem [câu trả lời này] (http://stackoverflow.com/a/2776855/706456). Bit gửi có vẻ chính xác, bit đọc cần một số chỉnh sửa. Và [một số khác] (http://stackoverflow.com/a/2301142/706456) nơi mọi thứ có vẻ đơn giản. – oleksii
Tôi đã thử liên kết thứ hai mà bạn cung cấp mà không có may mắn, nhưng liên kết đầu tiên dẫn tôi đến một phương pháp kết hợp URL đó và câu trả lời của @ C.B., Mà tôi đã thêm bên dưới. Cảm ơn – StormPooper