一尘不染

使用Web API返回匿名类型

json

使用MVC时,返回即席Json很容易。

return Json(new { Message = "Hello"});

我正在使用新的Web API寻找此功能。

public HttpResponseMessage<object> Test()
{    
   return new HttpResponseMessage<object>(new { Message = "Hello" }, HttpStatusCode.OK);
}

由于DataContractJsonSerializer无法处理匿名类型,因此引发了异常。

我有这个替换此JsonNetFormatter基于
Json.Net 。如果我使用这行得通

 public object Test()
 {
    return new { Message = "Hello" };
 }

但是如果我不返回HttpResponseMessage,我看不到使用Web API的意义,那么最好还是坚持使用香草MVC。如果我尝试使用:

public HttpResponseMessage<object> Test()
{
   return new HttpResponseMessage<object>(new { Message = "Hello" }, HttpStatusCode.OK);
}

它序列化整个HttpResponseMessage

谁能指导我找到一种解决方案,在其中可以返回匿名类型HttpResponseMessage


阅读 401

收藏
2020-07-27

共1个答案

一尘不染

这在Beta版本中不起作用,但在最新版本(从http://aspnetwebstack.codeplex.com构建)中起作用,因此,这很可能是RC的方式。你可以做

public HttpResponseMessage Get()
{
    return this.Request.CreateResponse(
        HttpStatusCode.OK,
        new { Message = "Hello", Value = 123 });
}
2020-07-27