Ändern Sie den Standard-ASP-MVC-Anforderungsheader, um Ihre eigenen Werte hinzuzufügen

Ich versuche, alle meine ASP MVC-HTTP-Antwortheader so zu ändern, dass sie standardmäßig einen anderen Wert für die Implementierung der automatischen Pingback-Erkennung in meiner Bloganwendung aufweisen.

Der Standardheader (bei Cassini) lautet:

<code>Cache-Control   private
Connection  Close
Content-Length  20901
Content-Type    text/html; charset=utf-8
Date    Fri, 20 Apr 2012 22:46:11 GMT
Server  ASP.NET Development Server/10.0.0.0
X-AspNet-Version    4.0.30319
X-AspNetMvc-Version 3.0
</code>

und ich möchte einen zusätzlichen Mehrwert:

<code>X-Pingback: http://localhost:4912/pingback/xmlrpcserver
</code>

Ich habe ein bisschen gegoogelt und eine neet Lösung gefunden: - abzuleitenActionFilterAttribute und überschreiben dieOnResultExecuted Methode:

<code>public class HttpHeaderAttribute : ActionFilterAttribute
    {

        public string Name { get; set; }
        public string Value { get; set; }

        public HttpHeaderAttribute(string name, string value)
        {
            Name = name;
            Value = value;
        }

        public override void OnResultExecuted(ResultExecutedContext filterContext)
        {
            filterContext.HttpContext.Request.Headers.Add(Name, Value);
            base.OnResultExecuted(filterContext);
        }

    }
</code>

Und dann lege ich einfach das Attribut auf meine Controllers-Methoden:

<code>[HttpHeader("X-Pingback","http://localhost:4912/pingback/xmlrpcserver")]
        public ActionResult Index()
        {
            var allArticles = _repository.GetPublishedArticles(SortOrder.desc);
            return View(allArticles);
        }
</code>

Wenn ich die App runt, erhalte ich den folgenden Fehler:

Irgendwelche Ideen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage