You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 5 Web API控制器CRUD返回值冗余问题求助

解决ASP.NET Core 5 Web API返回冗余外层结构问题

问题原因

你当前控制器方法的返回类型为Task<ActionResult<PTHeading>>,但实际要返回的是APIEntityResponse<PTHeading>类型的对象。类型不匹配导致ASP.NET Core框架对返回结果进行了额外包装,生成了包含formatters、statusCode等字段的冗余外层结构。

修改方案

  1. 调整方法返回类型
    将方法返回类型从Task<ActionResult<PTHeading>>改为Task<IActionResult>,这样可以灵活返回不同类型的响应内容,避免框架的自动包装。

  2. 修正返回逻辑
    保持错误分支的状态码返回逻辑不变,成功分支直接返回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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 06:11:11