ASP.NET Core 5 Web API控制器CRUD返回值冗余问题求助
解决ASP.NET Core 5 Web API返回冗余外层结构问题
问题原因
你当前控制器方法的返回类型为Task<ActionResult<PTHeading>>,但实际要返回的是APIEntityResponse<PTHeading>类型的对象。类型不匹配导致ASP.NET Core框架对返回结果进行了额外包装,生成了包含formatters、statusCode等字段的冗余外层结构。
修改方案
调整方法返回类型
将方法返回类型从Task<ActionResult<PTHeading>>改为Task<IActionResult>,这样可以灵活返回不同类型的响应内容,避免框架的自动包装。修正返回逻辑
保持错误分支的状态码返回逻辑不变,成功分支直接返回getResult.Result(你需要的目标结构)即可。
修改后的代码示例
[HttpGet("GetByUID/{uid:int}")] public async Task<IActionResult> GetPTHeading(int uid) { var getResult = await _controller.GetByValue("UID_PTHEADING", uid.ToString()); if (getResult is null) { return StatusCode(StatusCodes.Status500InternalServerError, $"Error retrieving {m_sControllerName} data from the database."); } else { return Ok(getResult.Result); } }
效果说明
修改后,接口将直接返回你需要的结构:
{ "isSuccess": true, "errorMessages": [], "data": { "uiD_PTHEADING": 14, "uiD_CUSTOMER": 17, "txT_PTHEADING_NAME": "Exterior", "booL_IS_ACTIVE": true, "inT_SORT_ORDER": 1 } }
内容的提问来源于stack exchange,提问作者John D
相关产品推荐
相关产品推荐

