我正在研究一个简单的项目来学习jQuery。我的问题是单击按钮后,我调用了jquery。它可以工作并将数据传送到控制器,但是第一次单击后成功功能将不起作用。它可以在第二次单击时正常工作。使用我的参数,在这两个调用中,控制器中的方法返回true。但是在第一次调用时,jQuery没有在成功函数中运行,但是在第二次调用中运行。
这是我的jquery:
function signin() {
var parameters = {
email: $('#emailtxt').val(),
password: $('#passwordtxt').val()
};
console.log(parameters);
$.ajax({
url: '@Url.Action("Login","Session")',
type: 'GET',
data: parameters,
dataType: 'json',
success: function (correctData) {
if (JSON.parse(correctData) == false) {
alert("Incorrect e-mail or password.");
} else if (JSON.parse(correctData) == true) {
window.location.assign('@Url.Action("Index","Home")');
}
}
});
};
这是我在控制器中的代码:
public JsonResult Login(string email, string password)
{
using (var context= new ProjistDbContext())
{
var user = context.Users.FirstOrDefault(x => x.UserEmail == email && x.UserPassword == password);
if (user == null)
{
var result = JsonConvert.SerializeObject(false);
return Json(result, JsonRequestBehavior.AllowGet);
}
else
{
Session["UserId"] = user.Id;
var result = JsonConvert.SerializeObject(true);
return Json(result, JsonRequestBehavior.AllowGet);
}
}
}
在这个问题上,我恳请您的帮助。非常感谢。
答案 0 :(得分:0)
我解决了我的问题,我想分享它。该问题是由于...引起的 我正在添加类似按钮;
<button>...</button>
这种定义正在刷新页面,并且在从控制器获取响应时导致错误。有时也会出现
这样的错误XHR无法加载GET ...
如果我将type =“ button”添加到html按钮定义中,它将停止刷新页面,并且所有帖子和响应均正常。
我想分享解决方案。谢谢大家的协助。