【发布时间】:2016-02-11 11:44:28
【问题描述】:
我有一个如下所示的对象:
{
"json": [{
"Contract": "....",
"SupervisorID": "..."
},{
"Contract": "...",
"SupervisorID": "..."
}]
}
上面的对象是这样构建的。我得到选中的复选框并将它们的 ID 添加到对象数组中。
var jsonArr = [];
var sps = $('#measuresUnApprovedModal').find('[name="chkbox_op"] input[type="checkbox"]:checked');
sps.each(function (i) {
var id = $(this).attr("id");
var idParts = id.split("_");
jsonArr.push({
"Contract": idParts[1],
"SupervisorID" : idParts[2]
});
});
如何在服务器端获取这些值?我当前的尝试如下所示:
$.ajax({
type: "POST",
url: "[REMOVED]",
data: { json: jsonArr },
contentType: "application/json; charset=utf-8",
dataType: "json"
}).done(function (msg) {
if (msg.d) {
alert("Success");
}
else { alert("Error has occured."); }
}).fail(function () {
alert("An unexpected error has occurred during processing.");
});
还有网络服务:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string SendEmail(List<SupervisorToEmail> json)
{
return "Hi";
}
}
public class SupervisorToEmail
{
public string Contract { get; set; }
public string SupervisorID { get; set; }
}
public class Supervisors
{
private List<SupervisorToEmail> SupervisorsToEmail { get; set; }
}
【问题讨论】:
-
哦,就这么定了,我刚把它删了就在这里发帖了 :) Edt:添加了 URL
-
请求是本地的,url是这样的 url: "DailyMeasuresServiceHandler.asmx/SendEmail",
-
您似乎在一个名为
json的属性中双重包装了对象。试试data: jsonArr, -
我添加了一些代码来显示数组是如何构建的,我不认为我是双重包装的?
-
现在更改 SendEmail 方法的签名:
SendEmail(List<SupervisorToEmail> json)
标签: c# jquery arrays json web-services