Saya berjuang selama beberapa hari untuk menemukan sesuatu yang akan bekerja untuk saya seperti melewati beberapa array id dan mengembalikan gumpalan. Ternyata jika menggunakan .NET CORE Saya menggunakan 2.1, Anda harus menggunakan [FromBody] dan karena hanya dapat menggunakan sekali Anda perlu membuat model tampilan untuk menyimpan data.
Bungkus konten seperti di bawah ini,
var params = {
"IDs": IDs,
"ID2s": IDs2,
"id": 1
};
Dalam kasus saya, saya sudah memulai array dan meneruskan hasilnya ke fungsi
var IDs = JsonConvert.SerializeObject(Model.Select(s => s.ID).ToArray());
Kemudian panggil XMLHttpRequest POST dan rapatkan objek
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));
Lalu punya model seperti ini
public class MyModel
{
public int[] IDs { get; set; }
public int[] ID2s { get; set; }
public int id { get; set; }
}
Lalu lewat di Action like
public async Task<IActionResult> MyAction([FromBody] MyModel model)
Gunakan add-on ini jika Anda mengembalikan file
<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.3/FileSaver.min.js"></script>
application/x-www-form-urlencoded
juga jika saya menggunakan stringify, lalu apa gunanya untuk menggunakanapplication/json
? :)