2016-11-26 59 views
0

我們希望將帶有ajax調用的Web表單的內容發送到Web方法,Web方法又調用Web服務以將表單內容插入數據庫。 我們不使用MVC,但使用我們的自定義C#代碼。將數據從Ajax調用傳遞到C#Web方法

我們的JavaScript是folllows:

 var data = { 
      HT: $("input[name='HT']").val(), 
      KT: $("input[name='KT']").val(), 
      T: $("input[name='T']").val() 
     }; 
     $.ajax({ 
      type: "POST", 
      url: "LTCreate.aspx/Create", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      data: JSON.stringify(data), 
      async: true, 
      success: function(msg) { 
       alert(msg.d); 
      } 
     }); 

我們的C#代碼如下:

 [WebMethod(EnableSession = true)] 
     public static string Create(string strJson) 
     {    


       HT = JsonConvert.DeserializeObject<pb.CLS_HT>(strJson); 

     ret = ws.INSERT_HT(SYSTEM_CODE, USER_INFO, HT, ref errMsg); 
     if (ret < 0) 
     { 
      return ret.ToString() + " " + errMsg; 
     } 
     else 
     { 
      return ret.ToString(); 
     } 
     } 

當我運行上面的代碼中,我們得到了以下錯誤消息:

消息:「無效的Web服務調用,參數缺失值: 'strJson'。」,...堆棧跟蹤:在 System.Web.Script.Services.WebServiceMethodData.CallMethod(對象 目標,IDictionary`2參數)↵在 System.Web.Script.Services.RestHandler.InvokeMethod

我們怎樣才能獲得正確的內容c#web方法中的數據字符串?

謝謝。

回答

0

使用的ScriptManager和啓用PageMethods這樣的:

<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server"></asp:ScriptManager> 

寫功能就像這樣:

[System.Web.Services.WebMethod(EnableSession = true)] 
    public static string Edit_Program(string ProgramID) 
    { 
     //Some Codes 
     return "OK"; 

    } 

調用函數從JavaScript:

function Edit_Program(data) { 
    PageMethods.Edit_Program(data, OnSuccessEditCallback, OnFailureCallback); 
    } 

    function OnSuccessCallback(res) { 
     //Some Codes 
    } 

    function OnSuccessEditCallback(res) { 
     //Some Codes 
    } 
相關問題