使用MVC時,返回adhoc Json非常簡單。使用Web API返回匿名類型
return Json(new { Message = "Hello"});
我正在使用新的Web API查找此功能。
public HttpResponseMessage<object> Test()
{
return new HttpResponseMessage<object>(new { Message = "Hello" }, HttpStatusCode.OK);
}
由於DataContractJsonSerializer
無法處理匿名類型,所以會引發異常。
我用JsonNetFormatter替換了這個JsonNetFormatter根據Json.Net。 這工作,如果我使用
public object Test()
{
return new { Message = "Hello" };
}
,但我沒有看到使用Web API,如果我不返回HttpResponseMessage
點,我會過得更好香草MVC堅持。如果我嘗試和使用:
public HttpResponseMessage<object> Test()
{
return new HttpResponseMessage<object>(new { Message = "Hello" }, HttpStatusCode.OK);
}
它序列化整個HttpResponseMessage
。
任何人都可以指導我解決方案,我可以在HttpResponseMessage
內返回匿名類型嗎?
這似乎並不是在當前版本中的情況。執行類似上述操作時,我收到一個HTTP 500。 – CodeMonkeyKing 2012-09-26 23:14:17
在4.0 RTM中適合我。 – Snixtor 2012-11-09 06:45:23
一個重要的注意事項,只有默認的json序列化器可以處理匿名對象的序列化。默認的xml序列化程序將會出錯,因此請確保您返回客戶端知道要發送的匿名對象接受:application/json in header。瀏覽器的Chrome瀏覽器傾向於默認要求xml,所以只是一個擡頭.. – Despertar 2013-02-15 02:21:48