2013-04-04 29 views
6

sto cercando di restituire una stringa JSON da un controller MVC in un'applicazione WebAPI, ma sono in grado di utilizzare return Json(... perché la classe utilizzata estende ApiController e non Controller (credo) .ritorno JSON da un controller MVC che si estende Apicontroller

Esiste un metodo alternativo per eseguire ciò che sto tentando di eseguire (ad esempio, restituire un tipo diverso)? O una soluzione?

Questo è il mio codice di controllo:

public class SocialController : ApiController 
{ 
    public ActionResult Get(SocialRequest request) // or JsonResult? 
    { 
     JavaScriptSerializer js = new JavaScriptSerializer(); 
     string jsontest = js.Serialize(request); // just serializing back and forth for testing 

     return Json(jsontest, JsonRequestBehavior.AllowGet); 
    } 
} 

L'errore che sto ricevendo è "System.Web.Helpers.Json è un tipo, ma viene utilizzato come una variabile".

ho trovato la seguente relativi SO domanda, ma non ha risolto per me, se qualcuno può elaborare Mi piacerebbe davvero grato (e piatto i punti rep): Why Json() Function is unknown

risposta

9

In Asp.net Web Api non hai più ActionResults. Semplicemente restituisci l'oggetto di cui hai bisogno. Il framework converte l'oggetto nella risposta corretta (json, xml o altri tipi)

[HttpGet] 
public IEnumerable<string> GetUsers(SocialRequest request) 
{ 
    return _applicationsService.GetUserss(request); 
} 
Problemi correlati