【发布时间】:2013-12-12 21:29:40
【问题描述】:
我可以将数据从实体框架获取到 javascript 网格 (SlickGrid)。 网格使用 Ajax 从 WCF 框架获取数据。这很好用,但现在我想将一个对象发送回 WCF 服务。如果我调试服务,我会看到 ajax 可以访问该功能。如果我检查对象,则该对象为空。在控制台中,我可以看到我发送了一个对象(检查屏幕截图)。如何捕捉对象以便读取数据?
我就是这样尝试的 WCF:
[OperationContract]
public void Sting(PreEmeaData postData)
{
var x = 1; //Breakpoint, postData is null?
}
JavaScript:
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);
我发现在使用 ajax 发送数据之前要对数据进行控制台:
console.log(JSON.stringify(object, null, null));
【问题讨论】:
-
看看我不久前创建的 WCF。我在方法上方也有 [WebInvoke(Method="POST", ResponseFormat = WebMessageFormat.Json)] 。您是否在控制台中遇到任何错误?
-
不,我没有收到任何错误。他只是进入服务器端函数,并在这个函数中运行代码。但是对象是NULL
-
另外,什么是:PreEmeaData,你可能想先得到一个简单的字符串来工作。
-
PreEmeaData 是我的类,它的列与网格中的列完全相同。我也使用这个类将它们发送到网格,这很有效。它们都是我在 Javascript 端检查数据类型的字符串。我添加了一个类的例子。
标签: c# javascript jquery ajax wcf