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

C# 尝试在控制器中返回自定义api响应,c#,asp.net-core-2.0,C#,Asp.net Core 2.0,每当我试图在c#asp.net内核中调用自定义api函数时,就会出现错误。 我得到的错误代码 无法将类型MnrtPortal.Helpers.CustomAPResponse隐式转换为Microsoft.AspNetCore.Mvc.IActionResult存在显式转换 CustomApiResponse不实现IActionResult,因此不能在返回IActionResult的方法中直接返回它。非常直截了当 您可以将操作的返回类型更改为CustomApiResponse,这将触发默认序列化程

每当我试图在c#asp.net内核中调用自定义api函数时,就会出现错误。 我得到的错误代码

无法将类型MnrtPortal.Helpers.CustomAPResponse隐式转换为Microsoft.AspNetCore.Mvc.IActionResult存在显式转换


CustomApiResponse
不实现
IActionResult
,因此不能在返回
IActionResult
的方法中直接返回它。非常直截了当

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

return Ok(CustomApiResponse.Create(200,user,"success"));
最后,如果愿意,您可以通过以下方式显式返回
JsonResult

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

什么是
CustomApiResponse
?它是一个自定义函数,我定义它来处理api响应,即具有Create方法的类?那有什么用?你需要分享!您应该返回
IActionResult
您的
CustomApiResponse。Create
返回
CustomApiResponse
对象。但是您的操作方法签名被定义为
IActionResult
。将其更改为
public CustomApiResponse User()
感谢它的工作,但现在我需要额外的帮助来传递状态代码。我现在在status code变量处发现此错误,该变量表示一个32位有符号整数。参数1:无法从int转换为System.Net.HttpStatusCode,因为您的方法采用的是
HttpStatusCode
enum,而不是int(您正在传递的)。将200替换为
HttpStatusCode.OK
。但我强烈建议您在尝试构建任何东西之前,更新关于类、方法类型等的基本C#知识。
return Json(CustomApiResponse.Create(200,user,"success"));