c# – 使用jQuery AJAX将字符串数组传递给具有可变参数数量的webmethod

前端之家收集整理的这篇文章主要介绍了c# – 使用jQuery AJAX将字符串数组传递给具有可变参数数量的webmethod前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图使用jQuery Ajax将一个字符串参数数组传递给C#ASP.NET Web服务.这是我的示例web方法.请注意,该函数接受可变数量的参数.当我运行 jquery时,Chrome的 @L_301_1@控制台中有一个500内部服务器错误.我正在使用jquery 1.6.2和.NET3.5
[WebMethod]
public string Concat(params string[] arr)
{
    string result = "";
    for (int i = 0; i < arr.Length; i++)
    {
        result += arr[i];
    }
    return result;
}

这是jquery:

$(document).ready(function() {

    var myCars=new Array(); 
    myCars[0]="Saab";      
    myCars[1]="Volvo";
    myCars[2]="BMW";

    $.ajax({
        type: "POST",url: "WebService.asmx/Concat",data: {arr: myCars},//can't figure out what to put here     
        success: onSuccess,Error: onError
    });
});

function onSuccess()
{
    alert("testing");
}

function onError() 
{
    alert("fail");
}

</script>

任何帮助是赞赏!

解决方法

修改后的服务器端代码
[WebMethod]
public string Concat(List<string> arr)
{
    string result = "";
    for (int i = 0; i < arr.Count; i++)
    {
        result += arr[i];
    }
    return result;
}

另外,在WebService类声明中添加以下内容

[System.Web.Script.Services.ScriptService]

修改客户端代码

$(document).ready(function () {

        var myCars = new Array();
        myCars[0] = "Saab";
        myCars[1] = "Volvo";
        myCars[2] = "BMW";

        $.ajax({
            type: "POST",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");
    }

此外,在该脚本之上添加一个对JSON2的引用,例如:

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

笔记:

>我已经测试了这个在.NET 4和使用jQuery 1.6.4.>确保保持客户端和服务器变量名同步:public string Concat(List< string> arr)data:JSON.stringify({arr:myCars})

原文链接:https://www.f2er.com/csharp/97044.html

猜你在找的C#相关文章