Ajax发布到错误的控制器

时间:2017-03-16 19:44:18

标签: jquery ajax asp.net-mvc

所以,我有一个稍微奇怪的问题。我有以下ajax:

$('form').submit(function (e) {

    e.preventDefault();

    $.ajax({
        type: 'POST',
        url: '@Url.Action("ForgotPassword", "Auth")',
        data: $('form').serialize()
    }).done(function (res) {
        if (res.status === "success") {
            $('form').hide();
            $("#msg").show();
        }
        if (res.status == "failure") {
            $("errormsg").show();
        }
    });
});

然后我有两个控制器需要[Httppost]

这是我的控制者:

[HttpPost]
public ActionResult ForgotPassword(USERS model)
{
    MySqlContext db = new MySqlContext();
    if (db.USERS.FirstOrDefault(u => u.EMAIL == model.EMAIL) != null)
    {
//Code
        try
        {
            Task.Run(() => { EmailService.SendEmail(model.EMAIL, "Password retreival", body); });
        }
        catch (Exception e)
        {
        }
        return Json(new { status = "success" });             
    }
        return Json(new { status = "failure" });
}
[Httppost]
public ActionResult Login(USERS model)
{
//Code
    if (model.EMAIL != null && pwDec == true)
    {
            return Json(new { status = "success" });
    }
    return Json(new { status = "error" });
}

我删除了一些代码,以使我的问题更加透明。会发生什么,如果我的条件表达式在ForgotPassword == null中,我的代码返回json"成功"即使它应该是"失败",并将我登录..

该程序正在使用基于声明的身份验证,我怀疑这是我出于某些奇怪原因登录的原因。

我怀疑我的ajax网址是否正确?无论如何,当我在我的ajax中发布到我的ForgotPassword控制器时,我不明白为什么我会登录。

非常感谢任何帮助

0 个答案:

没有答案