Tôi đã vật lộn trong một vài ngày để tìm thấy bất cứ điều gì có thể làm việc cho tôi khi vượt qua nhiều mảng id và trả lại một đốm màu. Hóa ra nếu sử dụng .NET CORE tôi đang sử dụng 2.1, bạn cần sử dụng [FromBody] và như chỉ có thể sử dụng một khi bạn cần tạo một chế độ xem để giữ dữ liệu.
Kết thúc nội dung như dưới đây,
var params = {
"IDs": IDs,
"ID2s": IDs2,
"id": 1
};
Trong trường hợp của tôi, tôi đã xử lý các mảng và truyền kết quả cho hàm
var IDs = JsonConvert.SerializeObject(Model.Select(s => s.ID).ToArray());
Sau đó gọi XMLHttpRequest POST và xâu chuỗi đối tượng
var ajax = new XMLHttpRequest();
ajax.open("POST", '@Url.Action("MyAction", "MyController")', true);
ajax.responseType = "blob";
ajax.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
ajax.onreadystatechange = function () {
if (this.readyState == 4) {
var blob = new Blob([this.response], { type: "application/octet-stream" });
saveAs(blob, "filename.zip");
}
};
ajax.send(JSON.stringify(params));
Sau đó, có một mô hình như thế này
public class MyModel
{
public int[] IDs { get; set; }
public int[] ID2s { get; set; }
public int id { get; set; }
}
Sau đó chuyển qua trong Hành động như
public async Task<IActionResult> MyAction([FromBody] MyModel model)
Sử dụng tiện ích bổ sung này nếu bạn trả lại một tệp
<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.3/FileSaver.min.js"></script>
application/x-www-form-urlencoded
nếu tôi sử dụng chuỗi, thì điểm cần sử dụng làapplication/json
gì? :)