gpt4 book ai didi

javascript - 查询后不包含对象名称?

转载 作者:行者123 更新时间:2023-12-03 08:58:22 27 4
gpt4 key购买 nike

我正在对这样的服务进行后调用,

var ms = [], url = myServer + "/government.svc/Users/Add";
ms.push({
ID: 210,
UserID: "S-1-691534-18",
Role: "1",
StartDate: myUser.startDate,
UpdateM: true
});

var user = {
Email: myUser.desc,
FirstName: myUser.FN,
LastName: myUser.LN,
Memberships: ms,
.. added all other properties like this "PropertyName" : ""
};
console.log(JSON.stringify(user));

$.ajax({
url: url,
type: "POST",
data: JSON.stringify({ pUser: user }) + '}',
contentType: "application/json; charset=utf-8"
})

字符串化后,我在控制台中得到了这个

"{"pUser":
{
"ID":"S-1-691534-18",
"Email":""user.one@google.com",
"FirstName":"User",
"LastName":"One",
"Memberships":[{"ID":"210","UserID":"S-1-691534-18","Role":"1","StartDate":"04/09/2015","UpdateM":true}],
"Username":"",
"Phone":"",
"Mobile":"",
"AddressID":"",
"Address":"",
"Photo":"",
"Bio":"",
"Notes":"",
"EmailNotes":"",
"IsNaugthy":"",
"CurrentMembershipID":"",
"MembershipStatus":"",
"OtherDate":"",
"MemAckwww":"",
"EatHabbits":""
}
}"

我的服务器端方法,

    [OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "/Users/Add")]
UserDetails AddUser(User pUsers);

错误

400 - 错误请求。

在 WCF 中调试服务器端时,我得到 pUser 为 null,所以我认为我需要将上面的 var user 对象作为用户对象而不是长字符串发送?

我的 WCF 数据契约(Contract)

我的服务器端有比我发送的更多的 DataMember,我不明白这是如何产生问题的?

我是否必须需要匹配客户端代码中的所有成员才能使其正常工作?

编辑

我的服务器端类,

public class User
{
[DataMember]
public string ID;
[DataMember]
public string Username;
[DataMember]
public string FirstName;
[DataMember]
public string LastName;
[DataMember]
public string Phone;
[DataMember]
public string Mobile;
[DataMember]
public string Email;
[DataMember]
public int? AddressID;
[DataMember]
public string Address;
[DataMember]
public string Photo;
[DataMember]
public string Bio;
[DataMember]
public string Notes;
[DataMember]
public string EmailNotes;
[DataMember]
public int IsNaugthy;
[DataMember]
public int CurrentMembershipID;
[DataMember]
public string MembershipStatus;
[DataMember]
public string OtherDate;
[DataMember]
public int? MemAckwww;
[DataMember]
public Membership[] Memberships;
[DataMember]
public Eat[] EatHabbits;
}

最佳答案

您的操作需要参数pUsers。您正在发送一个参数名为 pUser 的对象。

更改服务器端方法

[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "/Users/Add")]
UserDetails AddUser(User pUsers);

[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "/Users/Add")]
UserDetails AddUser(User pUser); //changed parameter name

此外,在发送数据时,请确保模型的任何非可为空类型的属性都有相应的值,否则模型绑定(bind)器会感到不安。

关于javascript - 查询后不包含对象名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32395312/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com