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

如何在ASP.NET Core ApiController中使用X-SomeValue自定义请求头?

解决自定义请求头X-SomeValue的绑定问题

因为C#的参数名不允许包含连字符,直接用X-SomeValue作为参数名会编译失败。要实现绑定X-SomeValue请求头,有两种实用方案:

方案一:显式指定请求头名称

在[FromHeader]特性中通过Name属性指定实际的请求头名称,参数名使用合法的C#标识符即可:

[ApiController]
[Route("[controller]")]
public class MyController : ControllerBase
{
    [HttpPost]
    public IActionResult DoStuff([FromHeader(Name = "X-SomeValue")] string xSomeValue)
    {
        // 此处可通过xSomeValue获取请求头的值
        return Ok();
    }
}

这种方式简单直接,适合单个自定义请求头的场景。

方案二:模型绑定多请求头

如果需要处理多个自定义请求头,可创建模型类,在属性上标注[FromHeader]并指定对应请求头名称:

public class CustomHeadersModel
{
    [FromHeader(Name = "X-SomeValue")]
    public string SomeValue { get; set; }

    // 可添加更多自定义请求头属性
    [FromHeader(Name = "X-AnotherValue")]
    public string AnotherValue { get; set; }
}

[ApiController]
[Route("[controller]")]
public class MyController : ControllerBase
{
    [HttpPost]
    public IActionResult DoStuff(CustomHeadersModel headers)
    {
        // 通过headers.SomeValue获取X-SomeValue的值
        return Ok();
    }
}

这种方式更适合多请求头场景,代码结构更整洁。

两种方案都能遵守自定义请求头使用X-前缀的最佳实践,同时符合C#语法规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 13:23:13