我有一个 MVC3 Razor 网站。我正在关注这里的教程:
http://www.thecodingguys.net/tutorials/asp/webpages-membership-forgot-password-and-reset-password
我已经能够生成令牌并成功发送电子邮件
然后,这封电子邮件让我通过如下链接进入重置密码视图:
~/Account/resetpassword?token=fujgFIo7k27c72-UTTJeGA2fujgFIo7k27c72-UTTJeGA2
现在,这是我的 HttpGet 方法
[AllowAnonymous]
[HttpGet]
public ActionResult resetpassword()
{
ResetPasswordModel model = new ResetPasswordModel()
{
Password = String.Empty,
ConfirmPassword = String.Empty,
Token = String.Empty
};
return View(model);
}
它所做的只是传入模型的一个实例
我对 resetpassword.cshtml 的看法
@model RazorARPP.Models.ResetPasswordModel
@{
var token = Request["token"];
Model.Token = token;
}
<form action="" method="post" enctype="multipart/form-data" id="MyForm">
@Html.ValidationSummary(true)
<fieldset>
<legend>Reset Password</legend>
@Html.HiddenFor(m => m.Token)
@Html.LabelFor(m => m.Password)
@Html.PasswordFor(m => m.Password)
@Html.ValidationMessage("password")
<br/>
@Html.LabelFor(m => m.ConfirmPassword)
@Html.PasswordFor(m => m.ConfirmPassword)
@Html.ValidationMessage("confirmPassword")
<input type="submit"/>
</fieldset>
</form>
现在我的 HttpPost 方法
[AllowAnonymous]
[HttpPost]
public ActionResult resetpassword(ResetPasswordModel model)
{
if (model.Password == model.ConfirmPassword)
{
WebSecurity.ResetPassword(model.Token, model.Password);
}
return RedirectToAction("Login");
}
它执行得很好,但重置密码不起作用。我确保该行正在调试器中运行。关于我做错了什么的任何建议?谢谢