Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NET 3.5中的Javascript Ajax到WCF_C#_Javascript_Jquery_Ajax_Wcf - Fatal编程技术网

C# NET 3.5中的Javascript Ajax到WCF

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:

我可以将实体框架中的数据放入javascript网格(SlickGrid)。 网格使用Ajax从WCF框架获取数据。这非常有效,但现在我想将一个对象发送回WCF服务。如果我调试该服务,我会看到ajax可以访问该功能。如果我检查该对象,则该对象为空。在控制台中,我可以看到我发送了一个对象(查看屏幕截图)。如何捕捉对象以便读取数据

我就是这样试的 周转基金:

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);

向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}),