所以,我有一个稍微奇怪的问题。我有以下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
控制器时,我不明白为什么我会登录。
非常感谢任何帮助