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

ASP.NET中SuccessAndNoData方法如何返回201状态的CreatedAtActionResult?

问题:如何让方法返回对应201状态码的结果?

现有如下C#代码:

protected NoContentResult SuccessWithOutData()
{
    return this.NoContent();
}

protected CreatedAtActionResult SuccessAndNoData()
{
    return ? ; // What do I return here?
}

其中SuccessWithOutData方法返回对应204状态的NoContentResult,请问SuccessAndNoData方法需返回什么才能得到201状态码?


要返回201状态码,你需要正确构造CreatedAtActionResult实例——201状态码的语义是"资源已创建",通常要求在响应头里返回新资源的位置(Location),所以必须指定对应的路由信息,即使没有实体数据返回。

示例代码如下:

protected CreatedAtActionResult SuccessAndNoData()
{
    // 替换为实际的目标Action名称,以及必要的路由参数(比如新创建资源的ID)
    return CreatedAtAction(nameof(YourTargetAction), new { id = 123 }, value: null);
}

关键说明:

  • CreatedAtAction第一个参数是目标Action的名称,用nameof可以避免硬编码字符串;
  • 第二个参数是路由参数对象,用来生成Location头的完整URL;
  • 第三个参数value传null,表示响应体不返回任何数据,满足你"无数据"的需求。

如果你的场景不需要关联到具体Action,也可以改用CreatedResult直接指定资源的URI(注意要同步调整方法的返回类型):

protected CreatedResult SuccessAndNoData()
{
    return Created("https://your-domain.com/resources/123", null);
}

内容的提问来源于stack exchange,提问作者user19181303

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:04:05