就在去年Insus.NET已經寫好的一個WebAPI項目,並且發佈在IIS中。參考《創建與使用Web API》http://www.cnblogs.com/insus/p/5019088.html 從上面的鏈接可以查看到那篇實例。今天Insus.NET就另開一個ASP.NET MVC項目,去操作這個 ...
就在去年Insus.NET已經寫好的一個WebAPI項目,並且發佈在IIS中。參考《創建與使用Web API》http://www.cnblogs.com/insus/p/5019088.html
從上面的鏈接可以查看到那篇實例。
今天Insus.NET就另開一個ASP.NET MVC項目,去操作這個Web API介面。
在控制器中,創建一個Action:
獲取數據是使用jQuery的Ajax來實現,方便與快捷,即是上圖標記#3的jQuery代碼程式:
上圖中藍色箭頭的url即是Web API的url路徑。
運行,看看獲取資料庫的結果:
正常來說,到上面為止算是演示完成,但是Insus.NET的想法,在ASP.NET MVC視圖顯示數據不太想使用jQuery來實現,而是想在控制中,去把數據傳入視圖中,當視圖完成時,數據也顯示完成。
在新項目中,創建一個model,跟Web API的model一樣:
寫一個方法,使作HttpClient類來處理Web API介面返回的數據:
public static IEnumerable<T> Get<T>(string url) { IEnumerable<T> model = null; var client = new HttpClient(); var task = client.GetAsync(url) .ContinueWith((taskwithresponse) => { var response = taskwithresponse.Result; var jsonString = response.Content.ReadAsStringAsync(); jsonString.Wait(); var json = jsonString .Result .TrimStart('\"') .TrimEnd('\"') .Replace("\\", ""); model = json.ToObject<IEnumerable<T>>(); }); task.Wait(); return model; }Source Code
運行的效果,當然跟上面jQuery獲取運行的效果一樣!!!
如果只想獲取某一筆記錄,不管是使用jQuery,還是HttpClient,只是對API介面的url稍修改一下即可。如想獲取id為4的記錄,那嘗試使用下麵url地址:
"http://localhost:9001/api/size/4"
呵呵,有關操作Web API的介面最基本的Post,Put,Delete的功能,請關註後續....