Json数据为空
我想将json数据从视图发送到asp.net mvc中的控制器。但是数据是空的Json数据为空,json,ajax,asp.net-mvc,Json,Ajax,Asp.net Mvc,我想将json数据从视图发送到asp.net mvc中的控制器。但是数据是空的 $(document).ready(function () { $('#btnSignUp').click(function () { var email = ('#txtEmail').val(); var username = ('#txtUsername').val() var password= ('#txtSifre').val();
$(document).ready(function () {
$('#btnSignUp').click(function () {
var email = ('#txtEmail').val();
var username = ('#txtUsername').val()
var password= ('#txtSifre').val();
$.ajax({
url: '/User/SignUp',
data: { email: email, username: username, password: password},
datatype: 'Json',
type: 'Post'
}).done(function () {
$('#success').show(500);
})
})
})
控制器代码:数据:电子邮件、用户名、密码。
数据为空。
调试结果:email=null,username=null,password=null
public ActionResult SignUp(string email,string username,string password)
{
var data = db.Users.Where(x => x.Nick == username || x.Email==email).SingleOrDefault();
Users user= new Users();
if (data== null)
{
ModelState.AddModelError("", "Username is valid");
}
else
{
uye.Nick = username;
uye.Email = email;
uye.Password= password;
db.Users.Add(user);
db.SaveChanges();
}
return RedirectToAction("HomePage","Home");
}
您有
数据类型:'Json',
,但您的方法不返回Json,因此会抛出错误。您的方法具有RedirectToAction()
但ajax调用无法重定向(ajax的全部目的是保持在同一页面上)请尝试JSON.stringfy({email:email,username:username,password:password})
@ElmerDantas,通常只有当contentType设置为JSON时才需要它,但是,否则jQuery只会将其序列化为正常形式的字段,MVC应该非常乐意接受这些字段。@Elmerdanta在我看来,提出更多的问题要比提出一些基于证据不足的建议更好,特别是当我们知道这种情况下的正常行为时,如我所述。试试$(“#btnSignUp”)。单击(函数(e){e.preventDefault()
并将$
添加到(“#txtEmail”).val()
之前,就像这样$(“#txtEmail”).val()
您有数据类型:'Json',
,但您的方法不返回Json,因此会引发错误。您的方法有重定向到Action()
,但ajax调用无法重定向(ajax的全部要点是保持在同一页面上)尝试JSON.stringfy({email:email,username:username,password:password})
@ElmerDantas通常只有在contentType设置为JSON时才需要,否则jQuery只会将其序列化为普通表单字段,MVC应该非常乐意接受这些字段。@ElmerDantas最好在IMO中提出更多问题,而不是在证据不足的情况下提出建议,特别是当我们知道在这种情况下,如我所述。尝试$('#btnSignUp')。单击(函数(e){e.preventDefault()
,然后在('#txtEmail').val()之前添加$
,就像这样$('#txtEmail').val()