从MVC控制器中的JsonResult方法返回JSON

我试图在测试ASP.NET MVC3应用程序中填充ComboBox(Telerik RAD COmboBox)。

我在我的ASPX页面上定义了ComboBox,在控制器中我定义了返回JsonResult的动作调用。

我遇到的问题是我使用的Web服务已经将结果集作为JSON字符串返回。 如何直接从Webservice传递响应。

以下是代码片段:ASPX页面:

 b .Ajax() .Select("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. } 

如果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。

如果使用ASP.NET MVC 2或更高版本:

 return Json(resultset, JsonRequestBehavior.AllowGet); 

如果我正确理解你应该使用Json()方法

 return Json(resultset); 

个人Json方法:

return Json(resultset);

它需要System.Web.Http DLL,命名空间是System.Web.Http.Results

在此处输入图像描述


或者网站范围将此行放在WebApiConfig.cs中

 config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));