我使用 jQuery.ajax 向我的服务器发送了一个 AJAX 请求,并且“数据”字段填充了与我的 ClientMessage 类型相对应的 JSON 字符串,但数据没有进入方法的主要参数。当方法在我调试时运行时,在 ProcessRequest 的数据参数中,ClientMessage 的所有成员都为空。
ClientMessage 类的成员是简单的自动实现的 get/set 字符串属性,使用 DataMember(Name="membername") 属性以及类本身的 DataContract 属性进行修饰。在客户端,Chrome 的开发人员工具显示 AJAX 请求的数据对象是有效的 JSON,我可以在请求查看器中展开它以验证正确的对象和正在发送的成员。
我只是无法弄清楚为什么 ClientMessage 数据实例的所有成员都带有空值(顺便说一句,它们都是简单的字符串)。
[OperationContract]
[WebInvoke(Method="POST",BodyStyle=WebMessageBodyStyle.Wrapped,RequestFormat=WebMessageFormat.Json,ResponseFormat=WebMessageFormat.Json)]
public ServerResponse ProcessRequest( ClientMessage data )
{
//all members of "data" parameter are null, why?