HTTP Response 数据出关

对WebAPI 而言Controller中的Action 都是返回 IActionResult 或者 ActionResult<T>. 通常有一下几种返回内容

1. 只有状态码

   对于没有返回值的Post请求,也可以返回一个空的Task(没返回值,但是有网络状态,而且200.)

        [HttpPost]
        public Task SingleFormular([FromBody] SingleFormularInputDto singleVolumeInputDto)
        {
            ApplicationService.CreateSingleFormular(singleVolumeInputDto);
            return Task.CompletedTask;
        }

 

  如果是创建什么东西一般返回201 这样才有意义,也更符合HTTP协议。或者返回创建成功后的链接地址。更加符合Restfull API.

      public IActionResult SingleFormular([FromBody] SingleFormularInputDto singleVolumeInputDto)
      {
          ApplicationService.CreateSingleFormular(singleVolumeInputDto);
          return StatusCode(StatusCodes.Status201Created);
      }

 

   具体的 return StatusCode(Microsoft.AspNetCore.Http.StatusCodes....) 很多类型.自己点出来下拉看。

  这种的返回值一般是IActionResult.

2.带状态码的对象,内置的ObjectResult, 这些类都继承自ObjectResult.比如 OkObjectResult, CreatedResult,NoFoundObjectResult 等等。

3.重定向结果

   1. Redirect("www.microsoft.com")

   2. LocalRedirect("/account/login")

   3. RedirectToAction("login")

   4. RedirectToRoute("RouteName", new{ action="login",controller="account"})

4. 内容结果 View,WEB项目多用

   比如ViewResult, JsonResult,ContentResult,

5. 内容的扩展,普通对象 .netcore 2.1 后支持普通对象的返回。

   

posted @ 2020-12-06 23:48  LearningAlbum  阅读(134)  评论(0)    收藏  举报