'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);
}
它开始工作。