加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 17:48:58 所属栏目:百科 来源:网络整理
导读:我试图使用jQuery Ajax将一个字符串参数数组传递给C#ASP.NET Web服务.这是我的示例web方法.请注意,该函数接受可变数量的参数.当我运行 jquery时,Chrome的 JavaScript控制台中有一个500内部服务器错误.我正在使用jquery 1.6.2和.NET3.5 [WebMethod]public str
我试图使用jQuery Ajax将一个字符串参数数组传递给C#ASP.NET Web服务.这是我的示例web方法.请注意,该函数接受可变数量的参数.当我运行 jquery时,Chrome的 JavaScript控制台中有一个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})

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读