我的jQuery正常工作,但回调第一次不起作用

时间:2018-12-14 00:04:55

标签: javascript jquery asp.net asp.net-mvc

我正在研究一个简单的项目来学习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);
                }
            }
        }

在这个问题上,我恳请您的帮助。非常感谢。

1 个答案:

答案 0 :(得分:0)

我解决了我的问题,我想分享它。该问题是由于...引起的 我正在添加类似按钮;

<button>...</button>

这种定义正在刷新页面,并且在从控制器获取响应时导致错误。有时也会出现

这样的错误
  

XHR无法加载GET ...

如果我将type =“ button”添加到html按钮定义中,它将停止刷新页面,并且所有帖子和响应均正常。

我想分享解决方案。谢谢大家的协助。