日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

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

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

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

一、我們首先建好一個項目,在VS2010中,建立好一個Web項目,并添加一個“啟用了Ajax的WCF服務”。

二、添加完成后,會自動打開剛才添加的文件,我們進行一些簡的修改,便于一會客戶端去調(diào)用,修改代碼如下:

 
 
 
 
  1. [ServiceContract(Namespace = "")]   
  2. [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]  
  3. public class DataService  
  4.      {   
  5.          ///    
  6.          /// 一、簡單調(diào)用服務端方法   
  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)用沒有什么可說的.

    下面,我們來進行一個稍微復雜點的例子演示,我們在實現(xiàn)的效果是:“客戶端提交一個注冊信息,然后在服務器端取出并解析成一個實體類對象,然后返回客戶端狀態(tài)。服務端代碼如下:

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

    然后客戶端對應如下:

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

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

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

     
     
     
     
    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方式,服務端對應著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)用方式就這樣了,當然,你可以稍微修改一下連接上數(shù)據(jù)庫一起使用,***我總結一下,在調(diào)用過程常見的錯誤及解決方法。

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

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

    三、配置文件,在添加時就自動配置好了,所以一般情況下沒有特殊要求無需更改。這是VS2010中的好處。

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

    【編輯推薦】

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

    本文題目:jQuery調(diào)用WCF開發(fā)實例經(jīng)驗分享
    地址分享:http://m.5511xx.com/article/coecccc.html