'ObjectContent`1'类型未能序列化内容类型'application/json;

问题描述:

嗨我有我的web api控制器注销页面。我能够打网址,我正在清除cookie,但我得到的回应是'ObjectContent`1'类型未能序列化内容类型'application/json的响应主体; 以下是我的代码。'ObjectContent`1'类型未能序列化内容类型'application/json;

[HttpGet] 
     [Route("~/api/auth/logout")] 
     //Log out code 
     public HttpResponseMessage Get() 
     { 

      var currentCookie = Request.Headers.GetCookies("session").FirstOrDefault(); 
      var response = Request.CreateResponse(HttpStatusCode.OK); 
      if (response!= null) 
      { 
       var cookie = new CookieHeaderValue("session", "") 
       { 
        Expires = DateTimeOffset.Now.AddDays(-1), 
        Domain = currentCookie.Domain, 
        Path = currentCookie.Path 
       }; 
       response.Headers.AddCookies(new[] { cookie }); 
       return Request.CreateResponse(HttpStatusCode.OK, response); 
      } 
      else 
      { 
      return response 
      } 
     } 

任何帮助,将不胜感激。谢谢。

我创建了如下的过滤器。

public class Action1DebugActionWebApiFilter : ActionFilterAttribute 
    { 
     public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext) 
     { 
      var response = actionExecutedContext.Response; 
      var request = actionExecutedContext.Request; 

      var currentCookie = request.Headers.GetCookies("session").FirstOrDefault(); 
      if (currentCookie != null) 
      { 
       var cookie = new CookieHeaderValue("session", "") 
       { 
        Expires = DateTimeOffset.Now.AddDays(-1), 
        Domain = currentCookie.Domain, 
        Path = currentCookie.Path 
       }; 

       response.Headers.AddCookies(new[] { cookie }); 
      } 

      base.OnActionExecuted(actionExecutedContext); 
     } 
    } 

装饰过滤器的行动方法如下。

[Route("~/api/auth/logout")] 
[Action1DebugActionWebApiFilter] 
public HttpResponseMessage Get() 
{ 
    var message = string.Format("Logged Out"); 
    HttpError msg = new HttpError(message); 
    return Request.CreateResponse(HttpStatusCode.OK, msg); 
} 

它开始工作。