Passing array of strings to webmethod with variable number of arguments using jQuery AJAX

前端 未结 1 1700
予麋鹿
予麋鹿 2020-11-27 20:41

I\'m trying to pass an array of string parameters to a C# ASP.NET web service using jQuery Ajax. Here is my sample web method. Note that the function accepts a variable numb

相关标签:
1条回答
  • 2020-11-27 21:00

    Revised server-side code:

    [WebMethod]
    public string Concat(List<string> arr)
    {
        string result = "";
        for (int i = 0; i < arr.Count; i++)
        {
            result += arr[i];
        }
        return result;
    }
    

    Also, add this above your WebService class declaration:

    [System.Web.Script.Services.ScriptService]
    

    Revised client-side code:

        $(document).ready(function () {
    
            var myCars = new Array();
            myCars[0] = "Saab";
            myCars[1] = "Volvo";
            myCars[2] = "BMW";
    
            $.ajax({
                type: "POST",
                url: "WebService.asmx/Concat",
                data: JSON.stringify({ arr: myCars }),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: onSuccess,
                failure: onError
            });
        });
    
        function onSuccess(response) {
            alert(response.d);
        }
    
        function onError() {
            alert("fail");
        }
    

    Also, add above that script block a reference to JSON2, such as:

    <script src="http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js"></script>
    

    Notes:

    • I have tested this under .NET 4 and using jQuery 1.6.4.
    • Make sure you keep the client and server variable names in sync:
      public string Concat(List<string> arr)
      data: JSON.stringify({ arr: myCars })
    0 讨论(0)
提交回复
热议问题