为了账号安全,请及时绑定邮箱和手机立即绑定

Asp.Net Core API 中的控制器返回类型

Asp.Net Core API 中的控制器返回类型

C#
杨魅力 2022-06-18 17:25:00
 [HttpGet("{id}")]    public Visitor Get(string id)    {        var result = _visitorRepository.GetFromDB(id);        if (result == _visitorRepository.GetFromDB(id))            return StatusCode(200);        if (result != null)            return result;        else            return StatusCode(408);    }它给了我一个错误,因为 StatusCode 具有 ActionResult 返回类型    [HttpGet("{id}")]    public ActionResult Get(string id)    {        var result = _visitorRepository.GetFromDB(id);        if (result == _visitorRepository.GetFromDB(id))            return StatusCode(200);        if (result != null)            return result;        else            return StatusCode(408);    }它给了我一个错误,因为结果具有访问者返回类型我只需要一种方法,但我无法将返回类型从 ActionResult 转换为访问者,反之亦然。
查看完整描述

3 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

您可以按照以下说明更正您的两个功能。


如果您的第一个功能:


[HttpGet("{id}")]

    public Visitor Get(string id)

    {

        var result = _visitorRepository.GetFromDB(id);


        if (result != _visitorRepository.GetFromDB(id))

            return StatusCode(200); // Somehow make this to return "Visitor" type

        if (result != null)

            return result;  // Somehow make this to return "Visitor" type

        else

            return StatusCode(408); // Somehow make this to return "Visitor" type

    }

如果您想使用第二个功能,请进行以下更改:


[HttpGet("{id}")]

    public ActionResult Get(string id)

    {

        var result = _visitorRepository.GetFromDB(id);


        if (result != _visitorRepository.GetFromDB(id))

            return Ok();

        if (result != null)

            return Ok(result); // Return type of ActionResult

        else

            return BadRequest();

    }

ActionResult仅供您参考StatusCode(200)返回类型可能就像


return Ok();


查看完整回答
反对 回复 2022-06-18
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

解决方案:


[HttpGet("{id}")]

public IActionResult Get(string id)

{

  if (id == null)

  {

    return BadRequest();

    var result = _visitorRepository.GetFromDB(id);

  }

  if (result != null)

    return Ok(result);


  else

    return NotFound();

}


查看完整回答
反对 回复 2022-06-18
?
富国沪深

TA贡献1790条经验 获得超9个赞

return new HttpStatusCodeResult(HttpStatusCode.OK);  // OK = 200

https://forums.asp.net/t/2084457.aspx?How+do+I+return+HttpStatus+codes+in+ASP+NET+Core+1+0+API+


查看完整回答
反对 回复 2022-06-18
  • 3 回答
  • 0 关注
  • 237 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号