使请求标头可作为基本控制器中的属性访问

时间:2014-01-02 17:41:22

标签: c# asp.net-mvc rest httprequest

我正在为我正在开发的api创建一个基本控制器,它会在每个REST请求中发送他们的application-id。我希望将ApplicationID作为私有属性访问,以供所有控制器访问。

  public class BaseApiController : ApiController
{
    private string ApplicationId
    {
        get
        {
            return HttpContext.Current.Request.Headers("x-application-id").ToString();
        }
    }
}

这样的错误就像这样:

Non-invocable member 'System.Web.HttpRequest.Headers' cannot be used like a method.

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

Request.HeadersNameValueCollection类型的属性,它有一个返回string的索引器。您可以像这样使用它:

public class BaseApiController : ApiController
{
    private string ApplicationId
    {
        get
        {
            return HttpContext.Current.Request.Headers["x-application-id"];
        }
    }
}

由于索引器已经返回string,因此也无需在结果上调用.ToString()