日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
jQuery調(diào)用WCF開(kāi)發(fā)實(shí)例經(jīng)驗(yàn)分享

我所使用的機(jī)器環(huán)境是:Windows7 VS2010 。

創(chuàng)新互聯(lián)從2013年開(kāi)始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元修文做網(wǎng)站,已為上家服務(wù),為修文各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

一、我們首先建好一個(gè)項(xiàng)目,在VS2010中,建立好一個(gè)Web項(xiàng)目,并添加一個(gè)“啟用了Ajax的WCF服務(wù)”。

二、添加完成后,會(huì)自動(dòng)打開(kāi)剛才添加的文件,我們進(jìn)行一些簡(jiǎn)的修改,便于一會(huì)客戶端去調(diào)用,修改代碼如下:

 
 
 
 
  1. [ServiceContract(Namespace = "")]   
  2. [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]  
  3. public class DataService  
  4.      {   
  5.          ///    
  6.          /// 一、簡(jiǎn)單調(diào)用服務(wù)端方法   
  7.         ///    
  8.          ///   
  9.          [OperationContract]  
  10.          [WebGet()]  
  11.          public string DoWork()  
  12.          {            
  13.              return string.Format("Today is {0}",DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss:fff"));  
  14.          }  
  15.           
  16.      } 

三、客戶端代碼中如下:

 
 
 
 
  1.    
  2.      
  3.        
  4.          
  5.         
  6.    
  7.    
  8.        
  9.      
     
  10.       
  11.          
 
  •        
  •    
  •   
  • 以上是最基本的調(diào)用沒(méi)有什么可說(shuō)的.

    下面,我們來(lái)進(jìn)行一個(gè)稍微復(fù)雜點(diǎn)的例子演示,我們?cè)趯?shí)現(xiàn)的效果是:“客戶端提交一個(gè)注冊(cè)信息,然后在服務(wù)器端取出并解析成一個(gè)實(shí)體類對(duì)象,然后返回客戶端狀態(tài)。服務(wù)端代碼如下:

     
     
     
     
    1. ///    
    2.        /// 二、由客戶端傳入數(shù)據(jù)示例        
    3.        ///    
    4.        /// Json格式的UserInfo數(shù)據(jù)   
    5.        ///    
    6.        [OperationContract]   
    7.        [WebGet(ResponseFormat=WebMessageFormat.Json)] //必須是WebGet,客戶端對(duì)應(yīng)著Get方式請(qǐng)求,如果是POST方式,服務(wù)端而是WebInvoke,不過(guò)很遺憾,暫時(shí)貌似好不支持,反正我是沒(méi)使用成功,有知道的請(qǐng)告訴我   
    8.        public string Register(string userInfo)   
    9.        {  
    10.            UserInfo model = JsonConvert.DeserializeObject(userInfo);//Newtonsoft.Json 使用第三方類庫(kù)將傳入的Json字符串反序列化成實(shí)體類。  
    11.            return string.Format("hello {0} sir!", model.LoginName);  
    12.        } 

    然后客戶端對(duì)應(yīng)如下:

     
     
     
     
    1. //示例二   
    2.            $("#btnRegiter").click(function () {   
    3.                var jsonString = "userinfo={\"loginName\":\"cheng\",\"password\":\"tomcat\"}"; //注意:我服務(wù)端只接收一個(gè)參數(shù)那就是String類型命稱為userInfo的變量,所以前面對(duì)應(yīng)也叫userInfo   
    4.                $.ajax({   
    5.                    url: "DataService.svc/Register",   
    6.                    type:"get", //注意是Get方式,服務(wù)端對(duì)應(yīng)著WebGet()   
    7.                    data: jsonString,   
    8.                    success: function (data) {   
    9.                        alert(data.d);  
    10.                    }  
    11.                })  
    12.            }) 

    此例子主要演示,客戶端提交一個(gè)JSON字符串格式的數(shù)組到服務(wù)端,然后服務(wù)端通過(guò)反序列化方式將傳入的字符串序列化成自定義對(duì)象。NET3.5自已也支持反序列化,但用的不爽,我用的是“Newtonsoft.Json”這個(gè),但也需要注意一個(gè)問(wèn)題,那就是如果客戶端傳入的數(shù)據(jù)是數(shù)值類型的話,請(qǐng)不要加引號(hào),否則會(huì)反序列化失敗。如“{"age":25}”,服務(wù)端對(duì)應(yīng)“public int Age{get;set;}”。但具JSON.org上說(shuō)的標(biāo)準(zhǔn)JSON格式,健/值好像都應(yīng)該需要加上引號(hào)的,所以這里大家需要注意。

    下面接著在演示一個(gè)客戶端獲取一個(gè)List類型數(shù)據(jù)并解析,同樣服務(wù)端代碼如下:

     
     
     
     
    1. [OperationContract]   
    2.          [WebGet(ResponseFormat = WebMessageFormat.Json)]   
    3.          public List GetAll()   
    4.          {   
    5.            List lists = new List()    
    6.              {    
    7.                  new UserInfo() { LoginName = "cheng", Password = "cheng" },   
    8.                  new UserInfo() { LoginName = "tomcat", Password = "tomcat" }    
    9.              };  
    10.              return lists;  
    11.          }  
    12.    
    13.  [DataContract]  
    14.      public class UserInfo  
    15.      {  
    16.          private string _loginName;  
    17.          private string _password;  
    18.    
    19.          [DataMember]  
    20.          public string Password  
    21.          {  
    22.              get { return _password; }  
    23.              set { _password = value; }  
    24.          }  
    25.          [DataMember]  
    26.          public string LoginName  
    27.          {  
    28.              get { return _loginName; }  
    29.              set { _loginName = value; }  
    30.          }  
    31.      } 

    客戶端代碼如下:

     
     
     
     
    1. $("#btnGetAllUser").click(function () {   
    2.                  $.ajax({   
    3.                      url: "DataService.svc/GetAll",   
    4.                      type: "get", //注意是Get方式,服務(wù)端對(duì)應(yīng)著WebGet()                
    5.                      success: function (data) {   
    6.                          for (var i = 0; i < data.d.length; i++) {   
    7.                              $("#divContent").append("用戶名:" + data.d[i].LoginName + "密碼:" + data.d[i].Password + "");                              
    8.                          }   
    9.                      },  
    10.                      error: function (msg) {  
    11.                          alert(msg.responseText);  
    12.                      }  
    13.                  })  
    14.              }) 

    好了,三種最常用的調(diào)用方式就這樣了,當(dāng)然,你可以稍微修改一下連接上數(shù)據(jù)庫(kù)一起使用,***我總結(jié)一下,在調(diào)用過(guò)程常見(jiàn)的錯(cuò)誤及解決方法。

    一、推薦使用Firebug去調(diào)試,在Firebug中有一個(gè)“網(wǎng)絡(luò)”選項(xiàng)卡,在那里,你可以清楚的看到你是否成功調(diào)用WCF服務(wù),而且可以看到返回的數(shù)據(jù)格工及詳細(xì)內(nèi)容,而且如果調(diào)用出錯(cuò),也可以給出明確的出錯(cuò)信息。

    二、在調(diào)試階端,推薦使用“GET”方式請(qǐng)求服務(wù),然后在error:funcation(msg){alert(msg.responseText);}這樣同樣也能看到大部份出錯(cuò)提示。

    三、配置文件,在添加時(shí)就自動(dòng)配置好了,所以一般情況下沒(méi)有特殊要求無(wú)需更改。這是VS2010中的好處。

    原文鏈接:http://www.cnblogs.com/bdqlaccp/archive/2011/05/08/2039415.html

    【編輯推薦】

    1. 5月***超有趣的免費(fèi)jQuery插件推薦
    2. 從零開(kāi)始學(xué)習(xí)jQuery之管理jQuery包裝集
    3. jQuery性能指標(biāo)和調(diào)優(yōu)
    4. 手把手教你jQuery jqPlot畫(huà)圖插件
    5. 從零開(kāi)始學(xué)習(xí)jQuery之***的選擇器

    新聞標(biāo)題:jQuery調(diào)用WCF開(kāi)發(fā)實(shí)例經(jīng)驗(yàn)分享
    網(wǎng)頁(yè)URL:http://www.dlmjj.cn/article/coecccc.html