我有以下脚本:
obj = [];
obj = [{ AllocationStatus: false,
BRId: 2,
BRName: "rifat",
SupervisorId: 19,
SupervisorName: "Ashraful"
}];
console.log(obj);
var data2send = JSON.stringify(obj);
$.ajax({
type: "POST",
url: "../WebService1.asmx/allocatebr",
data: "{'brlist':'" + data2send + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert(msg.d);
},
error: function () {
alert('error f');
}
});
在网络服务中,我有以下代码:
[WebMethod]
public string allocatebr(List<Allocation> brlist)
{
//foreach(Allocation br in brlist){
//}
return "success";
}
public class Allocation
{
public int SupervisorId { get; set; }
public string SupervisorName { get; set; }
public int BRId { get; set; }
public string BRName { get; set; }
public bool AllocationStatus { get; set; }
}
但我收到错误:无法加载资源:服务器响应状态为500(内部服务器错误)。我的代码有什么问题?我想将对象列表传递给method.how来做什么?任何人帮助我非常感谢。 n.b.i得到了obj数组
`$('.chkgrip').each(function () {
if ($(this).is(':checked')) {
var x = $(this).closest('tr').data('row');
obj.push(x);
}
});`
答案 0 :(得分:0)
我认为问题是[WebMethod]
属性将生成基于SOAP(XML)的Web服务。无法使用URL调用,就像您尝试它的方式一样。要做到这一点,你需要休息服务。
我建议Asp.Net Web Api或WCF。
答案 1 :(得分:0)
以下内容适用于我:
using Newtonsoft.Json;
[WebMethod]
public static string allocatebr(string brlist)
{
List<Allocationbr> brs = JsonConvert.DeserializeObject<List<Allocationbr>>(brlist);
foreach (Allocationbr b in brs)
{
x......
}
return x.ToString();
}