C# 是否可以从ajax调用中获取webmethod参数的arraylist?
我在C#webforms中为我的web应用程序创建了一个webmethod,该方法由Ajax调用调用C# 是否可以从ajax调用中获取webmethod参数的arraylist?,c#,jquery,ajax,arraylist,C#,Jquery,Ajax,Arraylist,我在C#webforms中为我的web应用程序创建了一个webmethod,该方法由Ajax调用调用 [System.Web.Services.WebMethod] public static string DataExport(ArrayList arr) { } 如何从ajax调用的“数据”字段填充方法DataExport的ArrayList 现在,我的Ajax非常简单: $.ajax({ type: "POST",
[System.Web.Services.WebMethod]
public static string DataExport(ArrayList arr)
{
}
如何从ajax调用的“数据”字段填充方法DataExport的ArrayList
现在,我的Ajax非常简单:
$.ajax({
type: "POST",
async: true,
url: "Default.aspx/DataExport",
data: '{ arr:"' + test + '"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) { },
error: function (response) { }
});
数据字段中的测试是JSON。我做了几个测试,如果我用字符串替换ArrayList,得到一个带有JSON内联的字符串,它就会工作
您知道如何修改数据以填充webmethod的类型ArrayList吗?您发布到服务器的数据不是数组,而是具有单个属性的对象
arr
。属性arr可能是一个数组。。。我们无法从你的片段中分辨出来
您实现的WebMethod应该支持JSON反序列化,但是您需要发布的JSON和WebMethod参数类型
- 创建一个表示列表中一个项目的对象(例如,
)Person
- 从
切换到ArrayList
(例如List
)List
- 更新javascript以发布
对象数组Person
[]
public class Person { public string Name { get; set; } }
public void DataExport(Person item) {
}
var postData = '{ "Name": "Some Person" }';
$.ajax(url, postData);
要发布到服务器的数据不是数组,而是具有单个属性的对象
arr
。属性arr可能是一个数组。。。我们无法从你的片段中分辨出来
您实现的WebMethod应该支持JSON反序列化,但是您需要发布的JSON和WebMethod参数类型
- 创建一个表示列表中一个项目的对象(例如,
)Person
- 从
切换到ArrayList
(例如List
)List
- 更新javascript以发布
对象数组Person
[]
public class Person { public string Name { get; set; } }
public void DataExport(Person item) {
}
var postData = '{ "Name": "Some Person" }';
$.ajax(url, postData);
您可以在web方法中接受JSON对象作为字符串,然后使用通用的JsonConvert.DeserializeObject方法应用必要的反序列化
var test = JSON.stringify(valuesToBePassed);
$.ajax({
type: "POST",
async: true,
url: "Default.aspx/DataExport",
data: test,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) { },
error: function (response) { }
});
然后使用以下代码段提取Web方法中的对象:
var list = JsonConvert.DeserializeObject<List<MyObjectType>>(json);
您可以在web方法中接受JSON对象作为字符串,然后使用通用的JsonConvert.DeserializeObject方法应用必要的反序列化
var test = JSON.stringify(valuesToBePassed);
$.ajax({
type: "POST",
async: true,
url: "Default.aspx/DataExport",
data: test,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) { },
error: function (response) { }
});
然后使用以下代码段提取Web方法中的对象:
var list = JsonConvert.DeserializeObject<List<MyObjectType>>(json);
您的数据
{arr:“test”}
是一个对象。我可以想象,只有当您的数据以json数组的形式出现时,您的计划才会起作用,例如[“test1”、“test2”、“test3”]
@RicoHerlt我的数据是这样的:[{“test1”:“test11”}、{“test2”:“test22”}、{“test3”:“test33”}您的数据{arr:“test}
是一个对象。我可以想象,只有当您的数据以json数组的形式出现时,您的计划才会起作用,例如[“test1”、“test2”、“test3”]
@RicoHerlt我的数据是这样的:[{“test1”:“test11”}、{“test2”:“test22”}、{“test3”:“test33”}]