[ASP.NET Core]在ASP.NET Core跨平台应用程序开发中如何返回带有Http状态码的JSON数据?

ASP.NET Core 作者: Rector 51阅读 0评论 0收藏 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

问题描述

在ASP.NET Web API的应用程序中,我们可以使用HttpStatusCode.OK这样的属性来获取当前请求的上下文的响应状态码,以便可以使用此状态进行后续的操作和处理,比如可以将此状态码以JSON数据返回给调用者,如下:

public IHttpActionResult GetResourceData()
{
    return this.Content(HttpStatusCode.OK, new { response = "Hello"});
}

但在.NET Core的跨平台应用程序开发中,以上的实现方式不能再使用了,比如下面的方式就不能获取到当前上下文的状态码:

public ActionResult IsAuthenticated()
{
    return Ok(Json("123"));
}

那么,在.NET Core跨平台应用程序开发(ASP.NET Core Web API)中,如何获取当前上下文的状态码呢?

方案一

在ASP.NET Core Web API的应用程序中,我们可以使用控制器StatusCode(),方法的返回值类型为ActionResult,实现如下:

public ActionResult IsAuthenticated()
{
    return StatusCode(200, Json("123"));
}

方案二

在ASP.NET Core 2.0中,控制器的操作(Action)返回对象类型(在.NET Core 2.0 中ASP.NET Core MVC和Web API两种应用都是继承至Controller)可以通过返回OkObjectResult()实例实现,如下:

public IActionResult Get()
{
    return new OkObjectResult(new Item { Id = 123, Name = "Hero" });
}

可以在OkObjectResult对象的参数中带入状态码

阅读了该文章的人还浏览了...

本文永久链接码友网 » [ASP.NET Core]在ASP.NET Core跨平台应用程序开发中如何返回带有Http状态码的JSON数据?

发布于: 2018-09-11 14:28:16
分享扩散: