这是我的JS(jQuery和Ajax)代码:
$('#submitSignUp').click(function () {
var name = $('#name').val();
var email = $('#email').val();
var password = $('#password').val();
$.ajax({
url: '@Url.Action("SignUp")',
type: "POST",
contentType: 'application/json; charset=utf-8',
dataType: "json",
data: JSON.stringify({ name: name, email: email, password: password }),
success: function () {
alert("Rgistered.");
}
})
})
这是我的行动方法。 (它在“家庭控制器”中):
[HttpPost]
public JsonResult SignUp(string name, string email, string password)
{
TodoNet.Models.TodonetModel database = new TodoNet.Models.TodonetModel();
TodoNet.Models.User oUser = new TodoNet.Models.User()
{
FirstName = name,
LastName = name,
Email = email,
Password = password,
Salt = password,
IsDeleted = false,
IsOnline = false,
PhoneNumber = "09212131212",
RegisterDate = DateTime.Now,
LastLoginDate = DateTime.Now
};
database.Users.Add(oUser);
database.SaveChanges();
return new JsonResult();
}
但我不知道为什么它不起作用。点击“#signUpSubmit”按钮后,“alert(”Registered。“)”将不会显示。 我做错了什么?
注意:不使用Ajax,(通过使用普通的发送表单数据到action方法,一切正常(这意味着我知道后端代码没有任何问题)
答案 0 :(得分:1)
如果表单正常提交,那么你的ajax应该发送表单数据而不是json 另外,请阻止按钮单击的默认操作。
$('#submitSignUp').click(function (e) {
e.preventDefault();
$.ajax({
url: '@Url.Action("SignUp")',
type: "POST",
dataType: "json",
data: $("#the_form_id").serialize(),
success: function () {
alert("Rgistered.");
}
});
});
答案 1 :(得分:0)
您也可以这样做。
在submitSignUp
提交您的参数,如下所示。
var param =
{
name: $('#name').val(),
email: $('#email').val(),
password: $('#password').val()
};
$.ajax({
url: '@Url.Action("SignUp")',
type: "POST",
dataType: 'json',
data: JSON.stringify(param),
async: false,
cache: false,
traditional: true,
contentType: 'application/json',
success: function (data) {
alert(1)
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
//alert(errorThrown);
return false;
}
});
更改您的控制器:
[HttpPost]
public ActionResult SignUp(string name, string email, string password)
{
//other implementation
return Json("", JsonRequestBehavior.AllowGet);
}
希望这有帮助!
答案 2 :(得分:0)
尝试将此作为您的Ajax方法-
let url = String(format: "%@?client_id=%@&redirect_url=%@&response_type=token&scope=%@&DEBUG=True", arguments: [INSTAGRAM_IDS.AUTHURL,INSTAGRAM_IDS.CLIENTID,INSTAGRAM_IDS.REDIRECTURL,INSTAGRAM_IDS.SCOPE])