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"] })。我想向用户隐藏此值。