在当前情况下,当我们通过Jquery Ajax帖子将数据从网页发布到web服务时,我们构建了一个带有两个或三个参数的Json字符串,并且我们有一个带有接受相同(命名)参数的方法的webservice
但是现在我的javascript中有一个对象有10个属性,我想知道我是否可以将整个对象发布到我的webservice。
我已经尝试发布该对象,并在Web服务中有一个类型'Object'参数,但这不起作用。
答案 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) {}
});