Asp.net web api 在WebApi 2控制器中获取标头值

Asp.net web api 在WebApi 2控制器中获取标头值,asp.net-web-api,Asp.net Web Api,在WebApi2控制器中访问标头值的正确方法是什么?我有这样的方法: [Route(Name ="Stuff")] public SysDataTablePager Get(string sEcho, int iDisplayStart) 它将分页的json数据返回到jquery数据表 我正在尝试使用此选项来获取搜索值 var nameFilter = Convert.ToString(Request["sSearch_1"]); 但我得到了这个错误: 无法将带[]的索引应用

在WebApi2控制器中访问标头值的正确方法是什么?我有这样的方法:

    [Route(Name ="Stuff")]
    public SysDataTablePager Get(string sEcho, int iDisplayStart)
它将分页的json数据返回到jquery数据表

我正在尝试使用此选项来获取搜索值

var nameFilter = Convert.ToString(Request["sSearch_1"]);
但我得到了这个错误:

无法将带[]的索引应用于“System.Net.Http.HttpRequestMessage”类型的表达式

IEnumerable<string> headerValues;
var nameFilter= string.Empty;
if (Request.Headers.TryGetValues("sSearch_1", out headerValues))
{
    nameFilter = headerValues.FirstOrDefault();
}
//check the header
StringValues headerValues;
var nameFilter = string.Empty;
if (Request.Headers.TryGetValue("X-Custom-Token", out headerValues)) {
  //validate the token
  nameFilter = headerValues.FirstOrDefault();
}
IEnumerable headerValue;
var nameFilter=string.Empty;
if(Request.Headers.TryGetValues(“sSearch_1”,out headerValues))
{
nameFilter=headerValues.FirstOrDefault();
}

为Web api项目使用ASP.Net核心Web应用程序(.Net核心)

试试这个

IEnumerable<string> headerValues;
var nameFilter= string.Empty;
if (Request.Headers.TryGetValues("sSearch_1", out headerValues))
{
    nameFilter = headerValues.FirstOrDefault();
}
//check the header
StringValues headerValues;
var nameFilter = string.Empty;
if (Request.Headers.TryGetValue("X-Custom-Token", out headerValues)) {
  //validate the token
  nameFilter = headerValues.FirstOrDefault();
}

Headers是请求对象内部的集合。您需要以从集合中访问成员的方式访问它。如果这对您有效,请接受它作为回答,或者您可以对您的操作参数使用
[FromHeader]
,它将直接从您的请求头自动提取它。