gpt4 book ai didi

jquery - 将对象数组发送到 WCF

转载 作者:行者123 更新时间:2023-12-01 08:07:32 25 4
gpt4 key购买 nike

在我的应用程序中,我想使用 jQuery 和 Ajax 保存数据。我有一个 WCF 服务。我想使用 ajax 保存对象列表。我尝试过以下代码,但它不工作。

jquery 代码:

      var listOfObjects=new Array();
      //creating list of objects
for(var i=0;i<5;i++)
{ var MyEntity=new Object();
MyEntity.TestId =i;
MyEntity.TestId =i+"testName";
listOfObjects.push(MyEntity);
}

//Saving info
$.ajax({
type: "POST",
async: false,
data: JSON.stringify(listOfObjects),
url: "../ServiceLayer/myService.svc/SaveResults",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function () {
alert("success");
},
error: function () {
alert("Error");
}
});

WCF:

    [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
public void SaveLabResults(List<MyEntity> myEntity)
{
var lstEntities=myEntity;
}

实体:

[DataContract]
public class MyEntity
{
[DataMember]
public string TestId { get; set; }
[DataMember]
public string TestName { get; set; }
}

通过这种方式,我尝试发送列表数据。但是内部服务器错误即将到来。我没有得到实际上我错的地方。是否有其他方法将对象列表发送到 WCF ?

谢谢

最佳答案

jquery 代码:

      var listOfObjects=new Array();
      //creating list of objects
for(var i=0;i<5;i++)
{ var MyEntity=new Object();
MyEntity.TestId =i;
MyEntity.TestId =i+"testName";
listOfObjects.push(MyEntity);
}

var jsonList=JSON.stringify(listOfObjects);
var dataToSend = '{"myEntity":'+jsonList+'';

//Saving info
$.ajax({
type: "POST",
async: false,
data: dataToSend,
url: "../ServiceLayer/myService.svc/SaveResults",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function () {
alert("success");
},
error: function () {
alert("Error");
}
});

WCF:

    [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
public void SaveLabResults(List<MyEntity> myEntity)
{
var lstEntities=myEntity;
}

实体:

[DataContract]
public class MyEntity
{
[DataMember]
public string TestId { get; set; }
[DataMember]
public string TestName { get; set; }
}

我缺少的是

 1.var jsonList=JSON.stringify(listOfObjects);
2.var dataToSend = '{"myEntity":'+jsonData+'';

第二点 myEntity 键应该存在于最终的 json 对象中。并且该键应该与wcf方法对象参数相同。

谢谢

关于jquery - 将对象数组发送到 WCF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15570317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com