ASP.NET CoreのPageModelのOnPost関数の引数でJSONを受け取る

提供: MonoBook
2024年3月7日 (木) 02:17時点におけるAdministrator (トーク | 投稿記録)による版 (→‎cshtml.cs)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

nuget[編集 | ソースを編集]

  • Microsoft.AspNetCore.Mvc.NewtonsoftJson

service[編集 | ソースを編集]

標準テンプレートではProgram.csあたりにあるサービス生成部分に以下を追加する。

builder.Services.AddControllers().AddNewtonsoftJson();

cshtml[編集 | ソースを編集]

cshtml内のJavaScriptからPOSTする方法は「ASP.NET CoreでJavaScriptのfetch関数を使う」を参照。

cshtml.cs[編集 | ソースを編集]

前述のサービス追加をしてあるとOnPost(OnPostAsync)やOnPutなどでNewtonsoft.JsonのJObject型が使えるようになっています。

public async Task<IActionResult> OnPostAsync([FromBody] JObject json)
{
    Console.WriteLine(json);
    return new JsonResult(new { status = "success" });
}