關於ASP.NET MVC4 Web API簡單總結


記錄一下 這周研究 api相關知識,主要介紹 api 分類、創建、調用。特別感謝網上同仁提供的資料。

關於 web api 分類:

wcf web api 和 asp.net web api , 2012年2月 微軟已宣布 WCF和ASP.NET 團隊合並,把WCF Web API的內容並入了ASP.NET Web API。

(詳見:http://www.cnblogs.com/shanyou/archive/2012/03/11/2390672.html

 

關於 web api 創建:

研發環境配置:

首先需要安裝了ASP.NET MVC 4的 Visual Studio 。下面的用哪個都行:

  • Visual Studio 2012
  • Visual Studio 2010 且已安裝 ASP.NET MVC 4。(需要安裝vssp1補丁,耗時較長)

下面使用vs2010 為例,具體操作步驟:

第一:創建項目,選擇 mvc4 web 應用程序

 

第二:在彈出的“新 ASP.NET MVC 4 項目”對話框中,選擇“Web API”然后點“確定”。

 

第三:當你創建完項目以后,”新建項目“向導就自動創建了2個控制器。在解決方案資源管理器里展開”Controllers“目錄就能看到了。

  • HomeController 是一個傳統的 ASP.NET MVC 控制器。它只是負責處理站點的HTML頁,跟Web API沒有直接關系。
  • ValuesController 是一個示例 WebAPI 控制器。

解決方案資源管理里,右擊 Controllers 目錄,選擇”添加“,”控制器“:並且選擇控制器模版類型,如圖:

 

第四:

控制器定義了三個方法,要么返回單個商品,要么返回一組產品:

  • GetAllProducts 方法返回所有的產品,返回類型為 IEnumerable<Product> 。
  • GetProductById 方法通過ID查詢某個產品。

 

ok!web API已經能用了。每一個控制器上的方法都對應了一個URI:

 

關於 web api 調用:

 

第一種:從瀏覽器中訪問WEB API

如:http://localhost:xxxx/api/products/. (將 "xxxx" 替換為真實的端口號)

 

第二種:用JavaScriptjQuery調用 Web API(注意:有時候 $ 識別需替換成JQuery

(詳見:http://tech.it168.com/a2012/0606/1357/000001357231_all.shtml)

 

在jQuery中,使用 JSONP 跨越數據傳輸方式, 通過$.getJSON的方法獲取服務器端數據。調用WEB API,代碼如下:

實例一 Code
 1 <script type="text/javascript">
 2 
 3     $(document).ready(function () {
 4 
 5         // Send an AJAX request
 6 
 7         $.getJSON("api/products/",
 8 
 9         function (data) {
10 
11             // On success, 'data' contains a list of products.
12 
13             $.each(data, function (key, val) {
14 
15  
16 
17                 // Format the text to display.
18 
19                 var str = val.Name + ': $' + val.Price;
20 
21  
22 
23                 // Add a list item for the product.
24 
25                 $('<li/>', { text: str })    
26 
27                 .appendTo($('#products'));  
28 
29             });
30 
31         });
32 
33     });
34 
35 </script>

實例一 經常使用的傳統方式。

實例二 Code
 1 $(document).ready(function () {
 2 
 3   $.getJSON("api/customers", Loadfun);
 4 
 5   });
 6 
 7 $.getJson方法中第一個參數是調用服務的地址,第二個參數是回調方法,這個回調方法Loadfun中,將展示服務端web api返回的數據,代碼如下:
 8 
 9 function Loadfun(data) {
10     $("#customerTable").find("tr:gt(1)").remove();
11     $.each(data, function (key, val) {
12         var tableRow = '<tr>' + 
13                         '<td>' + val.CustomerID + '</td>' +
14                         '<td><input type="text" value="' + val.CompanyName + '"/></td>' +
15                         '<td><input type="text" value="' + val.ContactName + '"/></td>' +
16                         '<td><input type="text" value="' + val.Country + '"/></td>' +
17                         '<td><input type="button" name="btnUpdate" value="Update" /> 
18                              <input type="button" name="btnDelete" value="Delete" /></td>' + 
19                         '</tr>';
20         $('#customerTable').append(tableRow);
21     });
22 
23     $("input[name='btnInsert']").click(OnInsert);
24     $("input[name='btnUpdate']").click(OnUpdate);
25     $("input[name='btnDelete']").click(OnDelete);
26 }

實例二 中我們可以拼接html,給某個按鈕注冊事件,如同操作普通html一樣。

  

 總結:研究的時候,需要耐心去查詢文獻,必須耐心,當沒有線索的時候,再堅持一下,也許奇跡就出現了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM