這篇文章將幫助你怎樣實現客戶端調用后台定義的方法。JQuery讓生活變的更簡單,對於它來說,這有一個很簡單的方法去實現這個目的。
(注:本文的目的是想說明怎樣使用JQuery去請求后台某個定義的方法,而非直接使用后台函數。請求后台的方法有很多種,這僅僅是客戶端與服務端交互的方法之一,當然還有當下流行的WebService。看到評論中有朋友對本文的標題有深入的討論,所以在此做下說明!)
早前,我們知道一種方法:如果我們想從客戶端去調用一個后台添加的函數就需要寫一種叫的WebMethod的東西,而現在,通過下面的方法,我們將無需再用到WebMethod。
通過下面的例子,我將寫一個方法,它的目的是當點擊刪除鍵時將會刪除一個指定的用戶。我不想回發(postback,Web 頁將數據發送回服務器上的同一頁的進程。),所以想從客戶端執行該事件。我在服務器端的cs文件中寫了一個方法,並在客戶端通過JQuery去調用它。這個頁面叫Test.aspx。而這個方法叫DeleteRec()。
1 private void DeleteRec() 2 { 3 int ID = Request.Form["ID"].ToString().ToInteger(); 4 //parameter send from client side 5 int UserID = Request.Form["UserID "].ToString().ToInteger(); 6 //parameter send from client side 7 UserBO lObjUserBO = new UserBO(); 8 lObjUserBO .DeleteUser(ID, UserID); 9 }
下面將介紹如果調用這個方法:
1 protected void Page_Load(object sender, EventArgs e) 2 { 3 if (!Page.IsPostBack) 4 { 5 #region Ajax methods 6 if (Request.Form["MethodName"] == "DeleteR") 7 // same Method Name that we are specifying on client side(DeleteR) 8 { 9 DeleteRec(); // Method defined on the page to delete the record 10 return ; 11 } 12 #endregion 13 } 14 }
這就是我們需要在客戶端(Test.aspx)中需要添加的。
1 <a id="adelete" href="java<!-- no -->script:void(0);">Delete</a>
使用下需要腳本將會在我們點擊錨標記的時候調用服務端的方法。
1 $('#adelete').click(function() 2 { 3 var dataToSend={ID:ID,MethodName:'DeleteR',UserID :UserID }; 4 var options = 5 { 6 url: '<%=ResolveUrl("~/Test.aspx") %>?x=' + new Date().getTime(), 7 data: dataToSend, 8 dataType: 'JSON', 9 type: 'POST', 10 success: function (response) { 11 window.location.href='<%=ResolveUrl("~/Test1.aspx")%>/'+ID; 12 //after success will redirect to new page 13 } 14 } 15 $.ajax(options);
希望上面這些能對你從客戶端調用服務端代碼有所幫助。