gpt4 book ai didi

c# - jquery ajax 'post' 调用

转载 作者:太空狗 更新时间:2023-10-29 22:34:00 25 4
gpt4 key购买 nike

我是 jQuery 和 Ajax 的新手,在使用“post”时遇到了问题。

我正在使用 jQuery Ajax“发布”调用将数据保存到数据库。当我尝试保存数据时,它会将 null 传递给我的 C# 方法。 jQuery 看起来像这样:

function saveInfo(id) {
var userID = id;
var userEmail = $('.userEmail').val();
var userName = $('.userName').val();

var dataJSON = {"userID": userID, "userEmail": userEmail, "userName": userName};

$.ajax({
type: 'POST',
url: '../../Services/AjaxServices.svc/SaveUser',
data:JSON.stringify(dataJSON),
contentType: 'application/json; charset=utf-8',
dataType: 'json'
});
return false;
}`

.userEmail 和.userName 是对输入字段的类引用。 C# 代码如下所示:

[ServiceContract(Namespace = "http://testUsePage.com")]
[AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)]

public class AjaxServices
{
[OperationContract]
[WebInvoke(Method = "POST", BodyStyle=WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Json)]
public void SaveUser(User user)
{
//code here handles save
}
}

我在“SaveUser”方法中设置了一个断点,传递的用户对象始终为空。谢谢!

编辑:我在 ajax 调用和 WebInvoke 属性中将“POST”切换为“GET”。将一个参数( {"UserID": UserID} )传递给具有签名( public void SaveUser(string UserID) )的方法到达断点,并传递 UserID 无一异常(exception)。立即将其切换回帖子会导致内部服务器错误。

最佳答案

您应该以这种方式发送您的用户数据:

{ 用户:{ 用户 ID:1,...}}

因为您正在使用 wrappedrequest。您的 json 中的第一个元素应该是您的参数名称。

您的其余代码似乎没问题。你应该使用 stringify。

关于c# - jquery ajax 'post' 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7232218/

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