Html.BeginForm 无法正常工作
Html.BeginForm Not work properly
我正在尝试使用 MVC 的一些功能。在实践中我提出了这样的看法:
@using (Html.BeginForm("ResetPasswordToken", "Account", FormMethod.Post, new { rt = @Request.QueryString["rt"] })))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true, "Reset Password non riuscito")
<div class="container above-footer login-form">
<div class="col-md-6" align="center" style=" margin-left:25%; margin-top:100px; margin-bottom:100px;">
<div class="editor-label">
@Html.LabelFor(m => m.ResetToken)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.ResetToken, new { @Value = @Request.QueryString["rt"] })
@Html.ValidationMessageFor(m => m.ResetToken)
</div>
<div class="editor-label">
@Html.LabelFor(m => m.NewPassword)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.NewPassword)
@Html.ValidationMessageFor(m => m.NewPassword)
</div>
<div class="editor-label">
@Html.LabelFor(m => m.ConfirmPassword)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.ConfirmPassword)
@Html.ValidationMessageFor(m => m.ConfirmPassword)
</div>
<p>
<input type="submit" value="Change Password" />
</p>
</div>
</div>
该视图用于重置密码,我想在单击 "Change Password" 时调用 AccountController 中的 ResetPasswordToken 方法。
AccountController 如此结构化,但当我单击按钮时它没有转到方法:
[HttpPost]
public ActionResult ResetPasswordToken()
{
return View();
}
[HttpPost]
public ActionResult ResetPasswordToken(RecoverPasswordModel model)
{
if (ModelState.IsValid)
{
if (WebSecurity.ResetPassword(model.ResetToken, model.NewPassword))
{
return RedirectToAction("PasswordResetSuccess");
}
else
{
ModelState.AddModelError("", "The password reset token is invalid.");
}
}
return View(model);
}
有人能帮帮我吗?
非常感谢,祝您假期愉快
罗伯托
您有两个具有相同名称和相同 httppost 属性的操作。将第一个动作(不带参数)标记为 httpget
好的。它缺少 [AllowAnonymus]。太好了,谢谢。现在一个问题。在不使用@ Html.TextBoxFor (m => m.ResetToken, new { @Value = @Request.QueryString["rt"] })。我想向用户隐藏此值。
我正在尝试使用 MVC 的一些功能。在实践中我提出了这样的看法:
@using (Html.BeginForm("ResetPasswordToken", "Account", FormMethod.Post, new { rt = @Request.QueryString["rt"] })))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true, "Reset Password non riuscito")
<div class="container above-footer login-form">
<div class="col-md-6" align="center" style=" margin-left:25%; margin-top:100px; margin-bottom:100px;">
<div class="editor-label">
@Html.LabelFor(m => m.ResetToken)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.ResetToken, new { @Value = @Request.QueryString["rt"] })
@Html.ValidationMessageFor(m => m.ResetToken)
</div>
<div class="editor-label">
@Html.LabelFor(m => m.NewPassword)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.NewPassword)
@Html.ValidationMessageFor(m => m.NewPassword)
</div>
<div class="editor-label">
@Html.LabelFor(m => m.ConfirmPassword)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.ConfirmPassword)
@Html.ValidationMessageFor(m => m.ConfirmPassword)
</div>
<p>
<input type="submit" value="Change Password" />
</p>
</div>
</div>
该视图用于重置密码,我想在单击 "Change Password" 时调用 AccountController 中的 ResetPasswordToken 方法。
AccountController 如此结构化,但当我单击按钮时它没有转到方法:
[HttpPost]
public ActionResult ResetPasswordToken()
{
return View();
}
[HttpPost]
public ActionResult ResetPasswordToken(RecoverPasswordModel model)
{
if (ModelState.IsValid)
{
if (WebSecurity.ResetPassword(model.ResetToken, model.NewPassword))
{
return RedirectToAction("PasswordResetSuccess");
}
else
{
ModelState.AddModelError("", "The password reset token is invalid.");
}
}
return View(model);
}
有人能帮帮我吗?
非常感谢,祝您假期愉快
罗伯托
您有两个具有相同名称和相同 httppost 属性的操作。将第一个动作(不带参数)标记为 httpget
好的。它缺少 [AllowAnonymus]。太好了,谢谢。现在一个问题。在不使用@ Html.TextBoxFor (m => m.ResetToken, new { @Value = @Request.QueryString["rt"] })。我想向用户隐藏此值。