Ho un controller WebAPI nella mia soluzione di progetto MVC5. Il WebAPI ha un metodo che restituisce tutti i file in una cartella specifica in una lista JSON:Chiamare l'API Web dal controller MVC
[{"name":"file1.zip", "path":"c:\\"}, {...}]
Dal mio HomeController voglio chiamare questo metodo, convertire la risposta JSON per List<QDocument>
e restituire questo elenco a un Vista del rasoio. Questo elenco potrebbe essere vuoto: []
se non ci sono file nella cartella.
Questa è l'APIController:
public class DocumentsController : ApiController
{
#region Methods
/// <summary>
/// Get all files in the repository as Json.
/// </summary>
/// <returns>Json representation of QDocumentRecord.</returns>
public HttpResponseMessage GetAllRecords()
{
// All code to find the files are here and is working perfectly...
return new HttpResponseMessage()
{
Content = new StringContent(JsonConvert.SerializeObject(listOfFiles), Encoding.UTF8, "application/json")
};
}
}
Ecco il mio HomeController:
public class HomeController : Controller
{
public Index()
{
// I want to call APi GetAllFiles and put the result to variable:
var files = JsonConvert.DeserializeObject<List<QDocumentRecord>>(API return Json);
}
}
Infine questo è il modello in caso di necessità:
public class QDocumentRecord
{
public string id {get; set;}
public string path {get; set;}
.....
}
Così come posso fare questa chiamata?
Perché non si chiamano come qualsiasi altro metodo? Aggiungi riferimento, avvia e chiama il metodo ... – Kaf
Solo un colpo d'occhio sull'utilizzo di JsonConvert nel tuo ApiController ... Fare questo automaticamente è una delle caratteristiche di punta WebAPI, – spender