如何从 Razor 页面 return 带有 HTTP 状态代码 500 的 JsonResult?

How to return JsonResult with HTTP Status Code 500 from Razor Page?

在我的 ASP.NET Core Razor Pages 应用程序中,我有时会通过 ajax 向服务器发送请求。

在那些情况下,我想 return JsonResult 无论是成功还是错误。

但我找不到更改 JsonResult 的 HTTP 状态代码的方法。

这是我的方法:

public IActionResult OnPostFileUpload()
{
   try
   {
       // code to manage and save the file, this request is AJAX
       return new JsonResult("done");
   }
   catch (Exception ex)
   {
       return new JsonResult(message); // how should I set it to be 500?
   }
}

您可以将 StatusCode 分配给 JsonResult,如下所示:

using System.Net;
return new JsonResult(message)
{
    StatusCode = (int)HttpStatusCode.InternalServerError
};

参考资料

JsonResult class Properties