ASP.NET CoreのPageModelのOnPost関数の引数でJSONを受け取る
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でNewtonsoft.JsonのJObject型が使えるようになっています。
public async Task<IActionResult> OnPostAsync([FromBody] JObject json)
{
Console.WriteLine(json);
return new JsonResult(new { status = "success" });
}