2011-05-05 55 views
7

Estoy intentando llenar un ComboBox (Telerik RAD COmboBox) en una aplicación de prueba ASP.NET MVC3.Devolver JSON desde un método JsonResult en el controlador MVC

He definido el ComboBox en mi página ASPX y en el controlador he definido la llamada de acción que devuelve un JsonResult.

El problema que estoy teniendo es que el servicio web que estoy utilizando ya devuelve el conjunto de resultados como una cadena JSON. ¿Cómo puedo pasar la respuesta del servicio web directamente?

Aquí está el fragmentos de código: página ASPX: <% Html.Telerik() ComboBox() .Nombre ("cbRefTables") .DataBinding (b => b .ajax() .. Seleccione ("GetCALMdata", "Common")
) .Render(); %>

controlador: llamada 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. 
    } 

Respuesta

15

Si la cadena resultset ya es JSON (y no envuelto en cualquier XML), entonces lo que desea devolver un ContentResult con exactamente esa cadena como el contenido:

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"); 
} 

Usted no desea utilizar JsonResult o la Json() ayudante en este caso, debido a que va a termine re-serializando su JSON.

3

si he entendido correctamente se debe utilizar el método de JSON()

return Json(resultset); 
+4

¿Cuál es la referencia de uso? –

18

Si usando ASP.NET MVC 2 o superior:

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

Eso es lo que originalmente tuve, sin embargo, aparece el siguiente error: Error de tiempo de ejecución de Microsoft JScript: 'Seleccionado' es nulo o no es un objeto – MAB

+1

Bueno, ese error no está saliendo del controlador. Entonces su problema es con la forma en que maneja el JSON. –

+0

lo más probable es que el error sea del cuadro combinado, no sabe cuál debería ser el elemento seleccionado predeterminado – curtisk

Cuestiones relacionadas