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)やOnPutなどでNewtonsoft.JsonのJObject型が使えるようになっています。
public async Task<IActionResult> OnPostAsync([FromBody] JObject json)
{
Console.WriteLine(json);
return new JsonResult(new { status = "success" });
}