jquery ajax'post'电话

wbl*_*nks 5 c# ajax wcf jquery json

我是jQuery和Ajax的新手,我遇到了"帖子"的问题.

我正在使用jQuery Ajax'post'调用将数据保存到数据库.当我尝试保存数据时,它将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;
    }`
Run Code Online (Sandbox Code Playgroud)

.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
    }
}
Run Code Online (Sandbox Code Playgroud)

我在'SaveUser'方法中设置了断点,并且传递的User对象始终为null.谢谢!

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

Gui*_*ans 5

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

{user:{userID:1,...}}

因为你正在使用wrappedrequest.你的json中的第一个元素应该是你的参数.

其余代码似乎没问题.你应该使用stringify.