繁体   English   中英

即使实例不为null,为什么WCF AJAX方法的参数也不填充值?

[英]Why would a WCF AJAX method's argument not be populated with values, even though the instance is not null?

我使用jQuery.ajax向服务器发送了AJAX请求,“数据”字段中填充了与我的ClientMessage类型相对应的JSON字符串,但数据并未将其传递给方法的主要参数。 当该方法在我调试时运行时,ClientMessage的所有成员在ProcessRequest的data参数中均为null。

ClientMessage类的成员是简单的自动实现的获取/设置字符串属性,使用类本身的DataMember(Name =“ membername”)属性以及DataContract属性进行修饰。 在客户端,Chrome的开发人员工具显示AJAX请求的数据对象是有效的JSON,我可以在请求查看器中将其展开以验证是否发送了正确的对象和成员。

我只是无法弄清楚为什么ClientMessage数据实例的所有成员都以null值到达(顺便说一下,它们都是简单的字符串)。

[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?

没关系。 显然,您必须在成员名称与方法的参数名称匹配的包装对象中发送数据对象。 因此, data:JSON.stringify({username:"",password:""})使用诸如data:JSON.stringify({username:"",password:""})类的设置进行AJAX调用data:JSON.stringify({username:"",password:""})我不得不使用data:JSON.stringify({data:{username:"",password:""})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM