尝试在控制器中返回自定义api响应

时间:2018-01-25 15:46:53

标签: c# asp.net-core-2.0

每当我尝试在c#asp.net核心中调用自定义api函数时,我都会收到错误。 我得到的错误代码

  

无法将类型MnrtPortal.Helpers.CustomApiResponse隐式转换为Microsoft.AspNetCore.Mvc.IActionResult,并且存在显式转换。

 [Route("api/User")]
        public IActionResult User()
        {
            var user = new
            {
                Name = "Joshua",
                Age = 40
            };
            // return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
            return CustomApiResponse.Create(200,user,"success");
        }

1 个答案:

答案 0 :(得分:1)

CustomApiResponse未实现IActionResult,因此您无法在返回IActionResult的方法中直接返回它。很直接。

您可以将操作的返回类型更改为CustomApiResponse,这应触发默认序列化程序(JSON)并从中创建JsonResult。或者您可以简单地将对象包装在OkObjectResult中,这将具有相同的效果。

return Ok(CustomApiResponse.Create(200,user,"success"));

最后,如果您愿意,可以明确地返回JsonResult

return Json(CustomApiResponse.Create(200,user,"success"));