我是jQuery和Ajax的新手,使用'post'时遇到了问题。
我正在使用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;
}`
.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”方法内设置了一个断点,传递的User对象始终为空。谢谢!
编辑:我将ajax调用和WebInvoke属性中的“POST”切换为“GET”。向具有签名(public void SaveUser(string UserID))的方法传递一个参数({"UserID": UserID}),可以到达断点,并且不会出现异常传递UserID。立即将其切换回POST会导致内部服务器错误。