ajax avec retour JSON retour page noire

aytac:

** Salut je connecter et enregistrer dans la page un contrôleur view.Login n'a pas vue. Je veux montrer un message d'erreur lorsque l'utilisateur entrez un code incorrect e-mail et mot de passe. mais il retourne page blanche avec { « Fail »} avec l'URL compte / Connexion

$(document).ready(function () {
$("#alertmessage").hide()
$("#logbut").on("click",function () {
    //collect the user data
    var data = {};
    data.Email = $("#Email").val();
    data.Password = $("#Password").val();
    var token = $('input[name="__RequestVerificationToken"]').val();

    $.ajax({
        contentType: "application/json; charset=utf-8",
        url: "/Account/Login",
        type: "POST",
        dataType: "json",
        data: {
            model: data,
            __RequestVerificationToken: token,

        },
        success: function () {

                $("#alertmessage").show()


        },

        })
    })
})

 <div class="login-container">
 <div class="row">
<div class=" col-md-12 col-sm-12 col-12  login-form-1">
<h2>Login </h2>
<p>Log into your account</p>
@using (Html.BeginForm("Login", "Account", FormMethod.Post))
{
<div id="alertmessage">
<div class=" alert alert-danger">
<span>
Email or Password is incorrect
</span>
</div>
</div>

@Html.AntiForgeryToken()

<div class="form-group col-md-12 col-sm-12 col-12">
<input id="Email" type="text" class="form-control" placeholder="Your Email *" value="" name="Emaillog" />
</div>
<div class="form-group col-md-12 col-sm-12 col-12 ">
<input id="Password" type="password" class="form-control" placeholder="Your Password *" value="" name="Passwordlog" />
</div>
<div class="form-group col-md-12 col-sm-12 col-12">
<input type="submit" class="btnSubmit" value="Login now" id="logbut" />
</div>
<div class="form-group col-md-6 col-sm-6 col-6">
<a href="#" class="ForgetPwd">Forget Password?</a>
</div>
}
</div>
</div>
</div>

[HttpGet]
    public ActionResult Login()
    {
        return View();
    }
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Login(string Emaillog,string Passwordlog)
    {

        string result = "Fail";

        User appUser = _context.Users.FirstOrDefault(u => u.Email == Emaillog);

        if (appUser != null)
        {
            if (appUser.Password ==Passwordlog)
            {
                Session["ActiveUser"] = appUser;
                return RedirectToAction("MainAccount");
            }
            }
        return Json(result, JsonRequestBehavior.AllowGet);    }

J'ai essayé le changement à l'action JsonResult mais toujours le même. Je ne sais pas où a mal tourné. **

Jerdine Wise:

Votre appel ajax est pas appelé parce que votre bouton de soumission est présente le formulaire et faire une redirection.

Ajouter un event.preventDefault()bouton clic événement afin qu'il ne fera pas un POST synchrone normal.

// add e parameter, this is for the event
$("#logbut").on("click",function (e) {
    // this is to avoid the form being submitted, and proceed with your script call
    e.preventDefault();

    // ...
})

Je suppose que tu aimes

Origine http://10.200.1.11:23101/article/api/json?id=399093&siteId=1
conseillé
Classement