C# NET 3.5中的Javascript Ajax到WCF
我可以将实体框架中的数据放入javascript网格(SlickGrid)。 网格使用Ajax从WCF框架获取数据。这非常有效,但现在我想将一个对象发送回WCF服务。如果我调试该服务,我会看到ajax可以访问该功能。如果我检查该对象,则该对象为空。在控制台中,我可以看到我发送了一个对象(查看屏幕截图)。如何捕捉对象以便读取数据 我就是这样试的 周转基金: JavaScript:C# NET 3.5中的Javascript Ajax到WCF,c#,javascript,jquery,ajax,wcf,C#,Javascript,Jquery,Ajax,Wcf,我可以将实体框架中的数据放入javascript网格(SlickGrid)。 网格使用Ajax从WCF框架获取数据。这非常有效,但现在我想将一个对象发送回WCF服务。如果我调试该服务,我会看到ajax可以访问该功能。如果我检查该对象,则该对象为空。在控制台中,我可以看到我发送了一个对象(查看屏幕截图)。如何捕捉对象以便读取数据 我就是这样试的 周转基金: JavaScript: function sendDataToWcf(object) { $.ajax({ type:
function sendDataToWcf(object) {
$.ajax({
type: "POST",
url: "DataService.svc/Sting",
data: JSON.stringify(object),
processData: false,
contentType: "application/json",
dataType: "json",
success: suckcess,
error: showError
});
}
PreEmeaData类的示例:
[DataContract]
public class PreEmeaData
{
[DataMember]
public string BO { get; set; }
[DataMember]
public string Agreement { get; set; }
}
显然,我发送的数据和接收的数据之间存在差异。
以下是我将其从WCF发送到Ajax的方式:
[{"BO":"NL", "Agreement":"201012230314MA"}]
这就是我试图通过Ajax发送的内容:
{"__type":"PreEmeaData:#TPlatform","Agreement":"201012230314MA","BO":"NL"}
我发现我用以下代码发送了什么:
IEnumerable<PreEmeaData> list = newData; //I send the object out like this thats why I use IEnumerable
var serializer = new JavaScriptSerializer();
var serializedResult = serializer.Serialize(list);
向PremeeAdata添加DataContract和Serializable属性,并确保JSON与类定义匹配。一种测试方法是,在服务器端使用JavascriptSerializer对实体进行字符串化,然后使用该字符串测试AJAX调用。这对我来说一直很有效
data: JSON.stringify({ postData: fooObject}),
我把数据改成了这个。postData是我在WCF代码中给对象的变量。查看我不久前创建的WCF。我在方法上方还有[WebInvoke(Method=“POST”,ResponseFormat=WebMessageFormat.Json)]。你在控制台中有没有收到任何错误?没有,我没有收到任何错误。他只是进入服务器端函数,并在这个函数中运行代码。但是对象也是空的,即:premeeadata,您可能需要先获得一个简单的字符串来工作。premeeadata是我的类,它的列与网格中的列完全相同。我还使用这个类将它们发送到网格,这很有效。它们都是字符串,我在Javascript端检查数据类型。我添加了一个类的示例。您的权利我收到的数据与我发送的不同。我不知道怎样才能改变这一切。我更新了2条不同反馈的帖子。对象是什么,即sendDataToWcf的参数,来自哪里?
console.log(JSON.stringify(object, null, null));
data: JSON.stringify({ postData: fooObject}),