2011-05-05 76 views
7

我想在測試ASP.NET MVC3應用程序中填充ComboBox(Telerik RAD COmboBox)。從MVC控制器中的JsonResult方法返回JSON

我在我的ASPX頁面上定義了ComboBox,並在控制器中定義了返回JsonResult的動作調用。

我遇到的問題是我正在使用的Web服務已經將結果集作爲JSON字符串返回。我怎樣才能直接傳遞來自Webservice的響應。

這裏是代碼的片段: ASPX頁: <%Html.Telerik()組合框() 請將.Name( 「cbRefTables」) .DataBinding(B => b 阿賈克斯() 。選擇(「GetCALMdata」,「Common」)
) .Render(); %>

控制器:稱爲CommomController

public JsonResult GetCALMdata() 
    { 
     CALMwsP.wsCALMSoapClient wsC = new CALMwsP.wsCALMSoapClient("wsCALMSoap"); 
     string resultset = wsC.GetRefTables("P_1", "P_2", "P_3", "P_4"); 

     return ??; -- I want to return resultset which is already formatted. 
    } 

回答

15

如果resultset字符串已經是JSON(而不是包裹在任何XML),那麼你會希望與正是字符串作爲內容返回ContentResult

public ContentResult GetCALMdata() 
{ 
    CALMwsP.wsCALMSoapClient wsC = new CALMwsP.wsCALMSoapClient("wsCALMSoap"); 
    string resultset = wsC.GetRefTables("P_1", "P_2", "P_3", "P_4"); 

    return Content(resultset, "application/json"); 
} 

你不想使用JsonResultJson()助手在這種情況下,因爲這是要最終重新序列化您的JSON。

3

如果我理解正確應使用ASP.NET MVC 2或更高使用JSON()方法

return Json(resultset); 
+4

什麼是使用參考? – 2013-02-08 04:40:58

18

如果:

return Json(resultset, JsonRequestBehavior.AllowGet); 
+0

這就是我原來的,但是我得到以下錯誤:Microsoft JScript運行時錯誤:'Selected'爲空或不是對象 – MAB 2011-05-05 17:07:30

+1

那麼,該錯誤不會出現在控制器。所以你的問題是你如何處理JSON。 – 2011-05-05 17:23:14

+0

最有可能是錯誤來自組合框,它不知道默認選擇項應該是什麼 – curtisk 2011-05-05 17:28:07

相關問題