2016-11-26 62 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 
    } 
相关问题