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

Posted

技术标签:

【中文标题】如何从 Razor 页面返回带有 HTTP 状态代码 500 的 JsonResult?【英文标题】:How to return JsonResult with HTTP Status Code 500 from Razor Page? 【发布时间】:2022-01-24 05:37:36 【问题描述】:

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

在这些情况下,我想返回 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?
   

【问题讨论】:

JsonResult 对象上设置.StatusCode 【参考方案1】:

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

using System.Net;
return new JsonResult(message)

    StatusCode = (int)HttpStatusCode.InternalServerError
;

参考文献

JsonResult class Properties

【讨论】:

以上是关于如何从 Razor 页面返回带有 HTTP 状态代码 500 的 JsonResult?的主要内容,如果未能解决你的问题,请参考以下文章

Asp.net Core 3.1-如何从控制器返回到 Razor 页面?

如何在同一个项目中同时拥有 MVC 和 Razor 页面?

ASP .NET Core 5 Razor Pages:如何正确使用局部视图并验证其模型状态?

布局 ASP.NET Razor 页面中的模态

从 Blazor 组件 (.razor) 重定向到 Razor 页面 (.cshtml) [服务器端]

带有 Razor 页面的 ASP .Net Core 与 UI 的 Angular [关闭]