2017-01-18 2 views
0

Ich benutze MVC. Ich zeige Danke-Seite (Ansicht), nachdem der Benutzer sein Passwort zurückgesetzt hat. Ich mag, indem Sie überall auf Seite Startseite umleiten, (I nicht jquery nur JavaScript zu verwenden ist erlauben) Dies ist eine Methode, die Ihnen Seitenansicht Rückgabe danken:Wie Redirect zu Homepage mit JavaScript

[HttpPost] 
    [Route("resetpassword")] 
    public async Task<ActionResult> ResetPassword(ResetPasswordViewModel resetPasswordViewModel) 
    { 
     string email = resetPasswordViewModel.Email; 
     string token = Request["token"].ToString(); 
     if (ModelState.IsValid) 
     { 
      if (resetPasswordViewModel.Password == resetPasswordViewModel.ConfirmPassword) 
      { 
       var user = Task.Run(() => Service.GetUserByEmailAsync(email)).Result; 
       if (user != null) 
       { 
        userRequest.Id = user.FirstOrDefault().Id; 
        userRequest.Password = resetPasswordViewModel.Password; 
        userRequest.Token = token; 
        await Service.UpdateUserAsync(userRequest); 
       } 
      } 
      else 
     //stay in same view and show error if there is any 
      { 
       ModelState.AddModelError("", "Please enter the same value again."); 
        return View(resetPasswordViewModel); 
      } 
     } 
      else 
     { 
      ModelState.AddModelError("", "Password is Required Field."); 
      return View(resetPasswordViewModel); 
     } 
     //in case on success toes to ThankYouResetPassword view 
     return View("ThankYouResetPassword"); 
    } 

und das ist ThankYouResetPassword Ansicht, die ist JavaScript Modal:

<div id="ThankYou-Page" class="modal"> 
<!-- Modal content --> 
<div class="modal-content"> 
    <span class="close">x</span> 
    <div id="forgot"> 
     <div class="modal-heading">Forgot Password?</div> 
     <hr class="forgot-password-line" /> 
     <br /> 
     <p>An email has been sent to you with the password reset link.</p> 
     <br />  
    </div> 
</div> 

Antwort

1

Wenn das Feld angezeigt wird, können Sie dem Hauptteil der Seite einen Ereignis-Listener hinzufügen.

document.body.addEventListener('click', function() { 
    document.location.replace('redirectPage.html'); 
} 

Wir wollen location.replace verwenden, weil wir sie erfrischen oder zurückschlagen will nicht, und senden das Formular erneut. Dies ist bei modernen Browsern weniger ein Problem, aber es lohnt sich immernoch davor zu schützen.

0

Warum nicht ein onclick Attribut hinzufügen?

<!-- Modal content --> 
<div class="modal-content" onclick="window.location.href='/'"> 
<span class="close">x</span> 
<div id="forgot"> 
    <div class="modal-heading">Forgot Password?</div> 
    <hr class="forgot-password-line" /> 
    <br /> 
    <p>An email has been sent to you with the password reset link.</p> 
    <br />  
</div> 
</div> 
Verwandte Themen