我想在我的Web服務方法中將JSON數據返回給客戶端。一種方法是創建SoapExtension
這裏使用它作爲屬性在我的網頁的方法,等等。另一種方法是簡單地[ScriptService]
屬性添加到Web服務,並讓.NET框架返回的結果爲{"d": "something"}
JSON,返回給用戶(d
被我控制的東西)。不過,我想回到類似:WebService中的Response.Write()
{"message": "action was successful!"}
最簡單的方法,可以像編寫一個Web方法:
[WebMethod]
public static void StopSite(int siteId)
{
HttpResponse response = HttpContext.Current.Response;
try
{
// Doing something here
response.Write("{{\"message\": \"action was successful!\"}}");
}
catch (Exception ex)
{
response.StatusCode = 500;
response.Write("{{\"message\": \"action failed!\"}}");
}
}
這樣一來,我會得到在客戶端:
{ "message": "action was successful!"} { "d": null}
這意味着ASP.NET將其成功結果追加到我的JSON結果中。如果在另一方面,我寫了成功的消息,(如response.Flush();
)後刷新響應,發生異常時,說:
服務器無法HTTP標頭後明確頭部已經發送。
那麼,怎樣才能得到我的JSON結果,而不改變方法?
嘗試設置response.BufferOutput = TRUE; – 2012-08-23 10:15:50