91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Ajax調用.net WCF

發布時間:2020-04-30 14:52:46 來源:網絡 閱讀:347 作者:myboor 欄目:開發技術

實驗多次,其實比較簡單,只是走了不少彎路,現在總結一下,
環境: VS2015

  1. 創建.net WCF非常容易,我是使用IIS做服務支撐,直接在web application項目中添加新的WCF,
    Ajax調用.net WCF

2.添加一個service接口(這個可以不用,我習慣了),接口中定義需要發布的幾個方法。

    interface ISystemUserSvr
    {
        [OperationContract]
        [WebGet]
        List<SystemUser> RetrieveUser();

        [OperationContract]
        [WebInvoke(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
        List<SystemUser> RetrieveBy(string loginId, string userName);

        [OperationContract]
        [WebInvoke(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
        List<SystemUser> RetrieveByObj(SystemUser user);

    }

其中,第一個方法使用Get方式,其余兩個使用Post方式接收參數。Post是默認的方式,這里也可以不用設置,包括Request和Response的設置都是默認值。

  1. 方法實現就簡單了,直接寫就可以了。這里只是舉個例子

        public List<SystemUser> RetrieveUser()
        {
            return (new SystemUserBO()).Retrieve(); 
        }
    
        public List<SystemUser> RetrieveBy(string loginId, string userName)
        {
    
            return (new SystemUserBO()).Retrieve(loginId, userName, 0, 0);
        }
    
        public List<SystemUser> RetrieveByObj(SystemUser user)
        {
            return (new SystemUserBO()).Retrieve(user.LoginId, user.UserName, 0, 0);
        }
  2. web.config配置,基本不需要特別配置,使用MS配置編輯器(VS自帶),注意ReaderQuotas設置就行,把最大長度都放到最大就好。
    Ajax調用.net WCF

  3. 客戶端調用,把幾種調用方式都列一下吧

    • Get方式,無參數

          $.ajax({
              contentType: 'application/json;charset=utf-8',
              method: "get",
              type: "get",
              dataType: "json",
              url: "SystemUserSvr.svc/Retrieve",
              success: function (result) {
                  $.each(result.d, function (n, value) {
      
                      $('#ajaxResult').append(value.UserName + "<p>" + n);
                  }
                     );
              }
          });
      
      });
  • Post方式,傳Json字符串參數

            $.ajax({
                contentType: 'application/json;charset=utf-8',
                method: "post",
                type: "post",
                data: JSON.stringify({ "LoginId": "R", "UserName": "" }),
                dataType: "json",
                url: "SystemUserSvr.svc/RetrieveBy",
                success: function (result) {
                    $.each(result.d, function (n, value) {
    
                        $('#ajaxResult').append(value.UserName + "<p>" + n);
                    }
                       );
                }
            });
    
        });
  • Post方式,傳Json對象

            $.ajax({
                contentType: 'application/json;charset=utf-8',
                method: "post",
                type: "post",
                data: JSON.stringify({ "user": { "LoginId": "R", "UserName": "王" } }),
                dataType: "json",
                url: "SystemUserSvr.svc/RetrieveByObj",
                success: function (result) {
                    $.each(result.d, function (n, value) {
    
                        $('#ajaxResult').append(value.UserName + "<p>" + n);
                    }
                       );
                }
            });

Post傳參最需要注意的就是那個contentType的設置, contentType: 'application/json;charset=utf-8'不能漏掉,否則,傳參可能不成功。另外.net WCF 返回的數據有可能是d對象,所以在解析返回數據的時候,需要特別注意一下,這里的例子直接使用了result.d,從而獲得d對象的值。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天长市| 乌拉特后旗| 抚顺县| 阿尔山市| 右玉县| 西充县| 祁门县| 永济市| 峨山| 伊吾县| 兴安县| 洪湖市| 平度市| 冀州市| 项城市| 宿松县| 水富县| 横峰县| 镇雄县| 石楼县| 含山县| 广州市| 宽城| 广平县| 五河县| 化州市| 白银市| 宁都县| 泰和县| 杭州市| 嘉鱼县| 仙居县| 满洲里市| 达日县| 永登县| 宿松县| 阿克苏市| 达孜县| 仁化县| 武川县| 遂溪县|