2015-12-22 86 views
1

我在耗費我的asp.net的Web API應用程序的.asmx服務是這樣的:消費的.asmx服務

[http://i.stack.imgur.com/WyyqX.png

但這項服務沒有返回,但在在HTTP響應對象中寫入響應,如下所示: `[WebMethod(EnableSession = true)] [ScriptMethod(UseHttpGet = true,ResponseFormat = ResponseFormat.Json)] public void GetResearchDocsBySector(int pageCode,int resultsPerPage,string subTypeIds,int時間範圍) { JavaScriptSerializer js = new JavaScriptSerializer(); IRatingsDirectDataMgr dataMgr = RemoteUtil.GetRemote();

 List<ResearchDocumentDisplay> results = dataMgr.GetSolrResults(pageCode, resultsPerPage, subTypeIds, timeframe, false); 

     List<ResearchDocumentWidgetDisplay> resultList = new List<ResearchDocumentWidgetDisplay>(); 
     foreach (var item in results) 
     { 
      var obj = ObjMapper<ResearchDocumentDisplay, ResearchDocumentWidgetDisplay>.Map(item); 
      obj.ArticleTypeName = Constants.TypeMappings[obj.ArticleTypeId]; 
      resultList.Add(obj); 
     } 

     HttpContext.Current.Response.Write(js.Serialize(resultList)); 
    }` 

我想從我的webapi應用程序以json格式的服務中獲得的結果如何去解決?

注意:我無法更改.asmx服務代碼!

+0

請勿將代碼作爲圖像發佈。我們不用照片編程。圖片難以在答案中重新使用您的代碼,它們無法編輯,也無法搜索。請修改您的問題以更正此問題。 – mason

+0

http://stackoverflow.com/questions/9594229/accessing-session-using-asp-net-web-api –

回答

1

將GetResearchDocsBySector設置爲返回您的列表,而不是返回一個void類型並將其注入到當前http內容中。爲此,您需要將ResearchDocumentWidgetDisplay標記爲Serialisable,您可以在類ResearchDocumentWidgetDisplay上添加[Serialisable]。

+0

我不能編輯服務,所以服務代碼必須保持這樣只 –

+0

它可以歸結爲爲您的通話服務不會返回任何結果。你確定你傳入的參數返回結果集嗎?其次,我會建議在請求上運行Fiddler以確保結果通過。 –