我想将一个数组传递给ac#webmethod,但没有一个很好的例子可以遵循.谢谢你的帮助.
这是我到目前为止:
我的阵列:
$(".jobRole").each(function (index) {
var jobRoleIndex = index;
var jobRoleID = $(this).attr('id');
var jobRoleName = $(this).text();
var roleInfo = {
"roleIndex": jobRoleIndex,
"roleID": jobRoleID,
"roleName": jobRoleName
};
queryStr = { "roleInfo": roleInfo };
jobRoleArray.push(queryStr);
});
Run Code Online (Sandbox Code Playgroud)
我的ajax代码
$.ajax({
type: "POST",
url: "WebPage.aspx/save_Role",
data: jobRoleArray,
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function (data) {
alert("successfully posted data");
},
error: function (data) {
alert("failed posted data");
alert(postData);
}
});
Run Code Online (Sandbox Code Playgroud)
在网络方法上不确定,但这是我在想的:
[WebMethod]
public static bool save_Role(String jobRoleArray[])
Run Code Online (Sandbox Code Playgroud)
你将传递一个数组:
[
"roleInfo": {
"roleIndex": jobRoleIndex,
"roleID": jobRoleID,
"roleName": jobRoleName
},
"roleInfo": {
"roleIndex": jobRoleIndex,
"roleID": jobRoleID,
"roleName": jobRoleName
}, ...
]
Run Code Online (Sandbox Code Playgroud)
在我看来,如果你有一个匹配该结构的类会更容易,如下所示:
public class roleInfo
{
public int roleIndex{get;set;}
public int roleID{get;set;}
public string roleName{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
因此,当您从jQuery调用Web方法时,您可以这样做:
$.ajax({
type: "POST",
url: "WebPage.aspx/save_Role",
data: "{'jobRoleArray':"+JSON.stringify(jobRoleArray)+"}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function (data) {
alert("successfully posted data");
},
error: function (data) {
alert("failed posted data");
alert(postData);
}
});
Run Code Online (Sandbox Code Playgroud)
在您的Web方法中,您可以通过List<roleInfo>以下方式接收:
[WebMethod]
public static bool save_Role(List<roleInfo> jobRoleArray)
{
}
Run Code Online (Sandbox Code Playgroud)
如果你试试这个,请告诉我.以上代码没有以任何方式进行测试,因此可能存在错误,但我认为这是一种很好且非常干净的方法.
| 归档时间: |
|
| 查看次数: |
14523 次 |
| 最近记录: |