0

我正在尝试将 javascript 数组传递给我后面代码中的方法。问题是,我需要将一个 int 与数组一起传递给该方法。当我做:

$.ajax({
                type: "POST",
                url: webMethod,
                data: JSON.stringify({ myArray : passedArray }),

有用。但现在我似乎无法弄清楚如何将数组传递给 AND 一个 int 后面的代码。我需要将它与数组一起传递:

"{'selectID' : '" + $("#ScarTattoos option:selected").val()

因为我的方法参数是:

public markItem getMarkNoID(int selectID, string[] person)
{
}
4

4 回答 4

4

您可以发送复合 JSON 对象,如下所示:

{
    myArray: passedArray,
    selectID: $("#ScarTattoos option:selected").val()
}

将此传递给JSON.Stringify您的 AJAX 调用,两个所需的对象都将发送到服务器处理程序。

但是,您必须手动反序列化它,除非您将其发送到 Web 服务,该服务通常根据参数名称(在 JSON 模式下)自行进行反序列化。

于 2012-11-20T19:43:05.333 回答
1

不确定您是否可以简单地从 jquery ajax 方法发布到您的代码后面。如果您使用 MVC 进行开发,是的,您可以 POST 到控制器,但您似乎正在使用 Web 表单。您可能会有更好的运气将您的 JSON 数据保存到 a<asp:HiddenField />然后发回。

您可以通过调用服务器上的方法获取所需的 Postback JavaScript 代码Page.ClientScript.GetPostBackEventReference(),然后将结果传递给客户端 JavaScript 代码以供以后调用。

于 2012-11-20T19:42:45.313 回答
1

我建议将数组和 int 添加到一个对象并对该对象进行字符串化。

var theID = $("#ScarTattoos option:selected").val();
var array = passedarray;
var PassObj = { selectID: theID, person: array};
于 2012-11-20T19:43:17.097 回答
1

尝试这样的事情:

var obj = {
    selectID: parseInt($("#ScarTattoos option:selected").val(), 10),
    myArray: passedArray
};

$("#ScarTattoos option:selected").val()会给你一个字符串,所以你需要 parseInt() 使它成为一个数字类型。

只需 JSON.stringify 你的 obj 并发送它。

于 2012-11-20T19:43:59.180 回答