Измените заголовок запроса ASP MVC по умолчанию, чтобы добавить свои собственные значения
Я пытаюсь изменить все мои заголовки ответа ASP MVC HTTP на другое значение по умолчанию для реализации автоматического обнаружения Pingback в моем приложении блога.
Заголовок по умолчанию (на Кассини):
<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>
и я хочу дополнительную добавленную стоимость:
<code>X-Pingback: http://localhost:4912/pingback/xmlrpcserver </code>
Я немного погуглил и нашел лучшее решение: - извлечь изActionFilterAttribute и переопределитьOnResultExecuted метод:
<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>
А затем я просто добавляю атрибут в мои методы контроллеров:
<code>[HttpHeader("X-Pingback","http://localhost:4912/pingback/xmlrpcserver")] public ActionResult Index() { var allArticles = _repository.GetPublishedArticles(SortOrder.desc); return View(allArticles); } </code>
Когда я запускаю приложение, я получаю следующую ошибку:
Есть идеи?