【问题标题】:ASP.NET 5, MVC 6, API response statusASP.NET 5、MVC 6、API 响应状态
【发布时间】:2016-09-06 20:07:09
【问题描述】:

我的 MVC 6 API 项目中有一个控制器。有一个 post 方法,我想要的是验证发布的值,如果数据无效,则将一些错误返回给客户端。

[HttpPost]
public void Post([FromBody]PostedHistoricalEvent value)
{
    if (!IsHistoricalEventValid(value))
    {
       //return error status code
    }
}

现在我想知道为什么默认模板中的 Post 方法没有任何返回类型而是 void 以及如何返回带有一些消息的错误 http 状态代码?

【问题讨论】:

    标签: asp.net-web-api asp.net-core-mvc


    【解决方案1】:

    没有返回类型 (void) will return an EmptyResult 或没有响应正文的 200 OK 的操作方法。

    如果您想更改响应,则可以更改返回类型并返回HttpStatusCodeResult:

    public IActionResult Post(...)
    {
        // ...
        return new HttpStatusCodeResult(400);
    }
    

    或者设置在Controller.Response:

    public void Post(...)
    {
        // ...
        Response.StatusCode = 400;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-25
      • 1970-01-01
      相关资源
      最近更新 更多