是否可以通过Jquery Ajax帖子将整个Javascript对象发布到.Net webservice?

时间:2011-04-11 08:08:50

标签: c# jquery asp.net web-services

在当前情况下,当我们通过Jquery Ajax帖子将数据从网页发布到web服务时,我们构建了一个带有两个或三个参数的Json字符串,并且我们有一个带有接受相同(命名)参数的方法的webservice

但是现在我的javascript中有一个对象有10个属性,我想知道我是否可以将整个对象发布到我的webservice。

我已经尝试发布该对象,并在Web服务中有一个类型'Object'参数,但这不起作用。

1 个答案:

答案 0 :(得分:2)

是的,这是可能的。您需要使用DataContract属性创建一个类并使其可序列化。然后,使用DataMember标记要序列化的类的成员。这样的事情会做:

[DataContract(Namespace = "http://www.yournamespace/")]
public class MyObject
{
    [DataMember]
    public long Id { get; set; }

    [DataMember]
    public String Name { get; set; }
}

然后在您的WCF服务中:

    [OperationContract]
    [WebInvoke(Method = "POST", RequestFormat=WebMessageFormat.Json)]
    public bool HandleObject(MyObject myObject)
    {

    }

在客户端代码中,执行以下操作:

    $.ajax({ url: url,
        type: "POST",
        data: '{"myObject":' + json2string(myObject) + '}',
        contentType: "application/json",
        dataType: "json",
        success: function(data) {}
    });