简体   繁体   中英

C# WCF Service not picking up properties from ajax post

I have a WCF to save some data to my db. In Dev Tools I can see the request payload as below:

{"OrderId":123456,"Year":"2017","CustomerId":999999,"LicencePlates":[{"licenceNumber":"222222222222222"}]}

My WCF service interface is as below:

    [OperationContract]
    [WebInvoke(UriTemplate = "/SaveLicenceData", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
    void SaveLicenceData(int OrderId, int Year, string CustomerId, LicencePlate[] LicencePlates);

The licence plate class is:

public class LicencePlate
{
    [DataMember]
    public string LicenceNumber { get; set; }
}

With a breakpoint set, I can see the OrderId getting passed, the Year getting passed and the CustomerId getting passed. However LicenceNumber I keep getting null passed.

I tried making the overall class [Serializable] but the breakpoint isn't even getting hit when I add this. I also tried changing the annotation too [DataMember(Name = "licenceNumber")] but still getting null and then changed the annotation to [JsonProperty] and still getting null.

Is there something stupid I have missed here?

I think you have a case mismatch. In your payload you have

"licenceNumber":"222222222222222"

It should be

"LicenceNumber":"222222222222222"

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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