IDの複数の配列を渡してBLOBを返すので、何日か私に役立つ何かを見つけるのに苦労しました。2.1を使用している.NET COREを使用している場合は、[FromBody]を使用する必要があり、データを保持するビューモデルを作成する必要がある場合にのみ使用できます。
以下のようなコンテンツをまとめ、
var params = {
"IDs": IDs,
"ID2s": IDs2,
"id": 1
};
私の場合、私はすでに配列をjsonし、結果を関数に渡しました
var IDs = JsonConvert.SerializeObject(Model.Select(s => s.ID).ToArray());
次に、XMLHttpRequest POSTを呼び出し、オブジェクトを文字列化します
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));
次に、このようなモデルがあります
public class MyModel
{
public int[] IDs { get; set; }
public int[] ID2s { get; set; }
public int id { get; set; }
}
次に、次のようなアクションを渡します
public async Task<IActionResult> MyAction([FromBody] MyModel model)
ファイルを返す場合は、このアドオンを使用してください
<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.3/FileSaver.min.js"></script>
application/x-www-form-urlencoded
stringifyを使用する場合も、使用するポイントは何application/json
ですか?:)