成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET Web API和JQ創建簡單Web應用

開發 前端
這是一個只涉及到簡單CRUD操作的Web應用,業務邏輯以Web API的形式定義并以服務的形式發布出來,前臺通過jQuery處理用戶交互并調用后臺服務。

看了dudu的《HttpClient + ASP.NET Web API, WCF之外的另一個選擇》一文,想起多很久之前體現ASP.NET Web API而創建的一個Demo。這是一個只涉及到簡單CRUD操作的Web應用,業務邏輯以Web API的形式定義并以服務的形式發布出來,前臺通過jQuery處理用戶交互并調用后臺服務。[源代碼從這里下載]

一、一個簡單的基于CRUD的Web應用

這個簡單的Demo應用用于模擬“聯系人管理”。當頁面加載的時候,所有的聯系人列表被列出來。在同一個頁面中,我們可以添加一個新的聯系人,也可以修改和刪除現有聯系人信息。整個應用***的頁面在瀏覽器中的呈現效果如下圖所示。

image

#p#

二、通過ASP.NET Web API提供服務

我們來簡單介紹作為Web API形式發布的聯系人管理服務的定義,先來看看用于表示聯系人的Contact類型的定義。

  1. public class Contact  
  2. {  
  3.     public string Id { get; set; }  
  4.     public string FirstName { get; set; }  
  5.     public string LastName { get; set; }  
  6.     public string PhoneNo { get; set; }  
  7.     public string EmailAddress { get; set; }  
  8. }  

“聯系人服務”以具有如下定義的ContactController的形式定義,它是ApiController的子類。簡單起見,我們采用靜態字段作為對聯系人信息的存儲。ContactController定義了Get、Put、Post和Delete用于進行對聯系人的獲取、添加、修改和刪除操作。我想對Web API不了解的人會感概,為了什么采用常用的四個HTTP方法作為操作的名稱,因為它們在默認的情況下就可以映射為HTTP請求的方法。

  1. public class ContactController : ApiController  
  2. {  
  3.     private static List<Contact> contacts = new List<Contact>  
  4.     {  
  5.         new Contact{ Id="001", FirstName = "San", LastName="Zhang", PhoneNo="123", EmailAddress="zhangsan@gmail.com"},  
  6.         new Contact{ Id="002",FirstName = "Si", LastName="Li", PhoneNo="456", EmailAddress="lisi@gmail.com"}  
  7.     };  
  8.           
  9.     public IEnumerable<Contact> Get()  
  10.    {  
  11.        return contacts;  
  12.    }  
  13.  
  14.    public Contact Get(string id)  
  15.    {  
  16.        return contacts.FirstOrDefault(c => c.Id == id);  
  17.    }  
  18.  
  19.    public void Put(Contact contact)  
  20.    {  
  21.        if (string.IsNullOrEmpty(contact.Id))  
  22.        {  
  23.            contact.Id = Guid.NewGuid().ToString();  
  24.        }  
  25.        contacts.Add(contact);  
  26.    }  
  27.  
  28.    public void Post(Contact contact)  
  29.    {  
  30.        Delete(contact.Id);  
  31.        contacts.Add(contact);  
  32.    }  
  33.  
  34.    public void Delete(string id)  
  35.    {  
  36.        Contact contact = contacts.FirstOrDefault(c => c.Id == id);  
  37.        contacts.Remove(contact);  
  38.    }  

和ASP.NET MVC Web應用一樣,我們同樣采用URL路由機制來實現請求地址與目標Controller和Action的映射,而針對API默認注冊的路有如下所示。

  1. public class MvcApplication : System.Web.HttpApplication  
  2. {  
  3.     //...  
  4.     public static void RegisterRoutes(RouteCollection routes)  
  5.     {  
  6.          //...  
  7.         routes.MapHttpRoute(  
  8.             name: "DefaultApi",  
  9.             routeTemplate: "api/{controller}/{id}",  
  10.            defaults: new { id = RouteParameter.Optional }  
  11.        );  

按照注冊的路由規則和Action方法名稱與HTTP方法的默認影射機制,我們可以直接在瀏覽器中分別訪問地址“/api/contact”和“/api/contact/001”得到所有聯系人列表和ID為“001”的聯系人信息。得到的結果如下圖所示。

image

#p#

三、通過JQuery消費服務

我們通過ASP.NET MVC來構建Web應用,默認的HomeController定義如下,默認的Index操作僅僅是將默認的View呈現出來而已。

  1. public class HomeController : Controller  
  2. {  
  3.     public ActionResult Index()  
  4.     {  
  5.         return View();  
  6.     }  

View中對用戶操作的相應和對后臺服務的調用都通過JQuery來完成,整個View的定義如下所示。

  1. <script type="text/javascript">  
  2.         $(function () {  
  3.             loadAllContacts();  
  4.            }  
  5.          )  
  6.        
  7.         function loadAllContacts() {  
  8.             $.ajax({  
  9.                 url     : "api/contact",  
  10.                type    : "GET",  
  11.                dataType: "json",  
  12.                success : function (data) { renderContactList(data) }  
  13.               }  
  14.            );          
  15.        }      
  16.        function renderContactList(contacts) {  
  17.            var html = "<table>";  
  18.            html += "<tr><th>First Name</th><th>Last Name</th><th>Phone No.</th><th>Email Address</th><th></th></tr>";  
  19.            for (i = 0; i < contacts.length; i++) {  
  20.                html += "<tr><td>" + contacts[i].FirstName + "</td><td>" 
  21.                     + contacts[i].LastName + "</td><td>" + contacts[i].PhoneNo + "</td><td>" 
  22.                     + "<input type=\"text\" class=\"textbox long\" id=\"" + contacts[i].Id + "\" value =\"" + contacts[i].EmailAddress + "\"/>" + "</td><td>" 
  23.                     + "<a href=\"#\" onclick = \"updateContact('" + contacts[i].Id + "')\">Update</a> &nbsp;&nbsp;&nbsp;&nbsp;" 
  24.                     + "<a href=\"#\" onclick = \"deleteContact('" + contacts[i].Id + "')\">Delete</a>" + "</td></tr>";  
  25.            }  
  26.            html += "<tr><td>" + "<input id=\"firstName\" type=\"text\" class=\"textbox\"/>" + "</td><td>" 
  27.                + "<input id=\"lastName\" type=\"text\" class=\"textbox\"/>" + "</td><td>" 
  28.                + "<input id=\"phoneNo\" type=\"text\" class=\"textbox\"/>" + "</td><td>" 
  29.                + "<input id=\"emailAddress\" type=\"text\" class=\"textbox long\"/>" + "</td><td>"   
  30.                + "<a href=\"#\" id=\"add\" onclick=\"addContact();\">Create</a> " + "</td></tr>";  
  31.            html += "</table>";  
  32.            $("#contacts").html(html);  
  33.            $("table tr:odd").addClass("oddRow");  
  34.        }      
  35.        function deleteContact(id) {  
  36.            $.ajax({  
  37.                url     : "api/contact/" + id,  
  38.                type    : "DELETE",  
  39.                success : function () { loadAllContacts();}  
  40.            });  
  41.        }  
  42.       
  43.        function updateContact(id) {  
  44.            var emailAddress = $("#" +id).attr("value");  
  45.            $.ajax({  
  46.                url     : "api/contact/" + id,  
  47.                type    : "GET",  
  48.                success : function (contact) {  
  49.                    contact.EmailAddress = emailAddress;  
  50.                    update(contact);  
  51.                }  
  52.            });  
  53.        }      
  54.        function update(contact) {  
  55.            $.ajax({  
  56.                url         : "api/contact/",  
  57.                type        : "POST",  
  58.                data        : contact,  
  59.                contentType : "application/json",  
  60.                success     : function () { loadAllContacts(); }  
  61.            });  
  62.        }  
  63.       
  64.        function addContact() {  
  65.            var contact = new Object();  
  66.            contact.FirstName       = $("#firstName").attr("value");  
  67.            contact.LastName        = $("#lastName").attr("value");  
  68.            contact.PhoneNo         = $("#phoneNo").attr("value");  
  69.            contact.EmailAddress    = $("#emailAddress").attr("value");  
  70.            $.ajax({  
  71.                url         : "api/contact/",  
  72.                type        : "PUT",  
  73.                data        : contact,  
  74.                contentType : "application/json",  
  75.                success     : function () { loadAllContacts(); }  
  76.            });  
  77.        }  
  78. </script>  
  79.     <div id="contacts"></div>  
 

原文鏈接:http://www.cnblogs.com/artech/archive/2012/05/14/web-api-demo.html

責任編輯:張偉 來源: Artech的博客
相關推薦

2009-07-23 15:18:30

創建XML Web服務ASP.NET

2009-07-29 10:30:53

Web應用程序ASP.NET

2009-07-27 13:39:06

Web窗體頁ASP.NET

2009-07-28 15:53:43

ASP.NET Web

2009-07-29 17:16:47

2009-07-24 10:41:00

ASP.NET Web

2009-07-21 15:23:55

預編譯Web應用程序ASP.NET

2009-07-24 11:25:53

Web應用程序工程ASP.NET MVC

2009-08-03 17:35:07

ASP.NET WebASP.NET編程工具

2009-07-28 10:43:23

Web服務器ASP.NET

2009-07-28 16:29:06

XML Web服務ASP.NET構造

2009-07-28 17:34:28

ASP.NET XML

2009-07-29 09:38:06

Web開發ASP.NET

2009-07-24 16:05:05

調用Web ServiASP.NET

2010-06-23 08:56:58

ASP.NET MVC

2014-07-31 09:28:09

ASP.NETWeb API

2009-12-25 10:36:10

ASP.NET 和 X

2009-08-05 14:11:56

ASP.NET Web

2009-07-23 15:11:43

XML Web服務方法ASP.NET

2009-07-27 17:32:39

Web ServiceASP.NET
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产1区2区在线观看 | 在线观看视频你懂得 | 综合九九 | 国产精品欧美一区二区 | 国产久| 欧美美女二区 | 久久777 | 91精品成人久久 | 免费日本视频 | 国产精品美女久久久久aⅴ国产馆 | 九九九久久国产免费 | 日韩电影一区 | a久久久久久 | 亚洲国产成人av | 欧美亚洲成人网 | www.玖玖玖 | 男女免费网站 | 国产区在线观看 | 日韩毛片| 国产精品欧美一区喷水 | 国产一区久久 | 亚洲欧美中文日韩在线v日本 | 亚洲欧美综合 | 精品国产1区2区3区 在线国产视频 | 婷婷久久五月天 | 我要看免费一级毛片 | 日韩成人在线视频 | 成人免费毛片在线观看 | 91在线免费观看 | 成人一级毛片 | 特黄视频 | 亚洲日本欧美日韩高观看 | 欧产日产国产精品国产 | 91精品国产乱码久久久久久久久 | 国产成人免费视频网站高清观看视频 | 日日夜夜精品免费视频 | 日韩精品1区2区3区 国产精品国产成人国产三级 | 四色永久| 免费观看av网站 | 激情毛片 | 欧美一区二区 |