我在/Account/ResetPassword
处有一个视图,其中用户将为他们想要重置的帐户提供电子邮件地址。
为密码重置而发送的电子邮件将包含如下所示的链接:
/Account/ResetPassword/{reset key}
我不知道如何设计视图以创建新密码。 在我看来,使用将其主设置为ResetPassword视图的局部视图,但必须将视图命名为迷惑我...
网址建议使用动态名称,那么如何创建视图?
答案 0 :(得分:0)
我不会为ResetPassword
视图的继承而烦恼,因为它只有一个字段,所以你不会获得太多收益。我会为CreatePassword
创建一个独特的视图,您可以根据是否提供reset key
参数来确定要返回的视图,例如。
public ActionResult ResetPassword(string resetKey)
{
if (String.IsNullOrEmpty(resetKey)) {
return View(); // will return "ResetPassword" view
} else {
// check validity of key then redirect if necessary
return RedirectToAction("CreatePassword");
}
}
答案 1 :(得分:0)
我会创建/Account/ConfirmResetPassword/{reset key}
作为电子邮件中的链接。如果重置键正确,则将用户重定向到另一个视图,假设/Account/ChangePassword
用户可以更改密码。如果重置密钥不正确,请继续/Account/ConfirmResetPassword/{reset key}
并显示重置密钥无效的消息。
这将是/Account/ConfirmResetPassword/{reset key}
public ActionResult ConfirmResetPassword(string resetKey)
{
bool isResetKeyCorrect = ...; // check if resetKey is correct here.
if (isResetKeyCorrect)
{
// redirect to /Account/ChangePassword
return RedirectToAction("ChangePassword", "Account");
}
else
{
// Display a message saying that the reset key is invalid
.......
return View();
}
}