Jquery代码:
<script type="text/javascript">
$(document).ready(function () {
$("#frmReg").on('submit', function (e) {
var emailAddr = $("#inputEmail").val();
var userName = $("#userName").val();
var password = $("#inputPassword").val();
var FormData = {
Email: emailAddr,
UserName: userName,
Password: password
};
var dd = JSON.stringify(FormData);
$.ajax(
{
type: "POST",
url: "Register.aspx/EmailAvailability",
contentType: "application/json; charset=utf-8",
data: '{"formData":'+ dd+ ' }',
dataType: "json",
success: function (data) {
alert("Entered");
},
fail: function () {
alert("failure");
}
});
});
});
</script>
Ajax CodeBehind文件: 这是Asp.net方法。
public static bool EmailAvailability(string formData)
{
return true;
}
答案 0 :(得分:1)
这里有错误。 你已经使dd看起来像Json,使用JSON.stringify!
data: '{"formData":'+ dd+ ' }',
这应该是:
data: dd,
如果你想成为一个项目数组,那么你的dd对象可以像这样完成:
var uData = [];
uData[0] = emailAddr;
uData[1] = userName;
uData[2] = password;
var dd = JSON.stringify(uData: uData);
现在您的Web服务方法将如下所示
EmailAvailability(List<string> uData)
如果您想将它们作为单独的参数:
var dd = JSON.stringify(emailAddr: emailAddr, userName: userName, password: password);
在这种情况下,您的网络服务方法将类似于EmailAvailability(string emailAddr, string userName, string password)
不要忘记data: dd
!
P.S:我也没有在示例中看到后面的代码中的属性[WebMethod]
不要忘记它!
[WebMethod]
public static bool EmailAvailability(string formData)
{
return true;
}