Posiadam kontroler WebAPI w ramach mojego rozwiązania projektowego MVC5. WebAPI ma metodę, która zwraca wszystkie pliki w określonym folderze jako listę Json:Wywołanie interfejsu API WWW z kontrolera MVC
[{"name":"file1.zip", "path":"c:\\"}, {...}]
Z mojego HomeController Chcę wywołać tej metody, konwersja odpowiedź JSON do List<QDocument>
i powrót listę Widok brzytwy. Ta lista może być pusta: []
, jeśli w folderze nie ma plików.
To 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")
};
}
}
Oto moja 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);
}
}
W końcu jest to model w przypadku trzeba go:
public class QDocumentRecord
{
public string id {get; set;}
public string path {get; set;}
.....
}
więc jak mogę wykonać to połączenie?
Dlaczego nie nazwać jak każdej innej metody? Dodaj odwołanie, zainicjuj i wywołaj metodę ... – Kaf
Wystarczy jedno kliknięcie, aby użyć JsonConvert w swoim ApiControllerze ... Wykonanie tego automatycznie jest jedną z flagowych funkcji WebAPI, – spender