C# 尝试在控制器中返回自定义api响应
每当我试图在c#asp.net内核中调用自定义api函数时,就会出现错误。 我得到的错误代码 无法将类型MnrtPortal.Helpers.CustomAPResponse隐式转换为Microsoft.AspNetCore.Mvc.IActionResult存在显式转换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,这将触发默认序列化程
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"));