2017-09-12 1 views
1

Ich portiere meine API von Web API 2 zu ASP.NET Core Web API. Früher habe ich in der Lage sein einen benutzerdefinierten Header in der folgenden Art und Weise hinzuzufügen:So fügen Sie benutzerdefinierten Header zu ASP.NET Core Web API-Antwort

HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); 
    response.Headers.Add("X-Total-Count", count.ToString()); 
    return ResponseMessage(response); 

Wie kann man in ASP.NET Core-Web-API einen benutzerdefinierten Header hinzu?

Antwort

5

Es ist ein Beispiel für eine einfache GET Aktion, die oben X Datensätze aus einigen Liste zurückgibt sowie die count in der Antwort-Header X-Total-Count:

using System; 
using System.Linq; 
using System.Net; 
using Microsoft.AspNetCore.Mvc; 

namespace WebApplication.Controllers 
{ 
    [Route("api")] 
    public class ValuesController : Controller 
    { 
     [HttpGet] 
     [Route("values/{top}")] 
     public IActionResult Get(int top) 
     { 
      // Generate dummy values 
      var list = Enumerable.Range(0, DateTime.Now.Second) 
           .Select(i => $"Value {i}") 
           .ToList(); 
      list.Reverse(); 

      var result = new ObjectResult(list.Take(top)) 
      { 
       StatusCode = (int)HttpStatusCode.OK 
      }; 

      Request.HttpContext.Response.Headers.Add("X-Total-Count", list.Count.ToString()); 

      return result; 
     } 
    } 
} 

URL sieht aus wie http://localhost:3377/api/values/5 und Ergebnisse (für 19 Dummy-Datensätze generiert, so X-Total-Count Wert wird 19 sein) sind wie:

["Value 18","Value 17","Value 16","Value 15","Value 14"] 
2

Bin nicht sicher. Aber können Sie das versuchen und sehen, ob es für Sie funktioniert.

public IActionResult SendResponse() 
{ 
    Request.HttpContext.Response.Headers.Add("X-Total-Count", "20"); 

    return Ok(); 
}  
Verwandte Themen