public ActionResult ForgotPassword(EmailAddressModel model) { if (ModelState.IsValid) { // Attempt to send the user a password email try { _membershipProvider.GeneratePasswordResetToken(model.EmailAddress); } catch (MembershipException) { ModelState.AddModelError("EmailAddress", "User not found."); return(View()); } try { User user = _membershipProvider.GetUserByEmailAddress(model.EmailAddress); _mailer.SendPasswordResetAsync(user); } catch (Exception ex) { ModelState.AddModelError("", "Unable to send password reset email."); ex.ToExceptionless().SetUserEmail(model.EmailAddress).Submit(); return(View()); } ViewBag.EmailSent = true; return(View()); } // If we got this far, something failed, redisplay form return(View(model)); }