C# 试图将javascript数组和int传递给codebehind
我试图将javascript数组传递给代码隐藏中的方法。问题是,我需要将int与数组一起传递给该方法。当我这样做时:C# 试图将javascript数组和int传递给codebehind,c#,javascript,asp.net,json,C#,Javascript,Asp.net,Json,我试图将javascript数组传递给代码隐藏中的方法。问题是,我需要将int与数组一起传递给该方法。当我这样做时: $.ajax({ type: "POST", url: webMethod, data: JSON.stringify({ myArray : passedArray }), 它起作用了。但现在我似乎不知道如何将数组传递给代码隐藏和int。 我需要将其与阵列一起传递: "{'sele
$.ajax({
type: "POST",
url: webMethod,
data: JSON.stringify({ myArray : passedArray }),
它起作用了。但现在我似乎不知道如何将数组传递给代码隐藏和int。
我需要将其与阵列一起传递:
"{'selectID' : '" + $("#ScarTattoos option:selected").val()
因为我的方法参数是:
public markItem getMarkNoID(int selectID, string[] person)
{
}
不确定是否可以简单地从jqueryajax方法发布到代码隐藏中。如果您是使用MVC开发的,您可以发布到控制器,但您似乎在使用web表单。您可能会更幸运地将JSON数据保存到
,然后发回
通过调用服务器上的
Page.ClientScript.GetPostBackEventReference()
方法,然后将结果传递给客户端JavaScript代码供以后调用,可以获得所需的回发JavaScript代码。可以发送一个复合JSON对象,如下所示:
{
myArray: passedArray,
selectID: $("#ScarTattoos option:selected").val()
}
var obj = {
selectID: parseInt($("#ScarTattoos option:selected").val(), 10),
myArray: passedArray
};
在AJAX调用中将此消息传递给JSON.Stringify
,两个所需的对象都将被发送到服务器处理程序
但是,您必须手动对其进行反序列化,除非您将其发送到web服务,web服务通常根据参数名称(在JSON模式下)本身进行反序列化。我建议将数组和int添加到对象中,并对该对象进行字符串化
var theID = $("#ScarTattoos option:selected").val();
var array = passedarray;
var PassObj = { selectID: theID, person: array};
试着这样做:
{
myArray: passedArray,
selectID: $("#ScarTattoos option:selected").val()
}
var obj = {
selectID: parseInt($("#ScarTattoos option:selected").val(), 10),
myArray: passedArray
};
$(“#scar纹身选项:选中”).val()
将为您提供一个字符串,因此您需要parseInt()将其设置为数字类型
只需JSON.stringify您的obj并发送它。然后确保JSON对象中的字段与方法参数具有相同的名称-在您的示例中,ID为“selectID”,数组为“person”。