asp-validation-summary 屏蔽后退按钮

asp-validation-summary blocking back button

我有一个页面,其中包含一个正在对模型进行验证的表单。问题是它阻止了取消按钮。

当用户点击取消按钮时,会强制他们提供新密码并确认。它应该只是将它们发送回上一页。

@model Auth.Controllers.Account.RecoverPasswordViewModel

<div class="mdl-typography--text-center">
    <h2 class="mdl-typography--headline">Gendan kodeord</h2>
    <p class="mdl-typography--body-1">Gendand kodeord til din konto</p>
</div>

<div asp-validation-summary="ModelOnly" class="mdl-color-text--red-400"></div>

@using (Html.BeginForm("RecoverPassword", "Account", FormMethod.Post, new {@class = "form-horizontal", role = "form"})) {
    <input type="hidden" asp-for="Code" />
    <fieldset>
        <div class="mdl-textfield  mdl-js-textfield mdl-textfield--floating-label">
            <input class="mdl-textfield__input" asp-for="NewPassword" type="password" autocomplete="off" required autofocus/>
            <label class="mdl-textfield__label" asp-for="NewPassword">Nyt kodeord</label>
            <span asp-validation-for="NewPassword" class="mdl-textfield__error"></span>
        </div>
        <div class="mdl-textfield  mdl-js-textfield mdl-textfield--floating-label">
            <input class="mdl-textfield__input" asp-for="ConfirmNewPassword" type="password" autocomplete="off" required/>
            <label class="mdl-textfield__label" asp-for="ConfirmNewPassword">Bekræft nyt kodeord</label>
            <span asp-validation-for="ConfirmNewPassword" class="mdl-textfield__error"></span>
            <input type="hidden" asp-for="ReturnUrl" value="@Model.ReturnUrl" />
        </div>

        <div class="actions">
            <button class="mdl-button mdl-button--primary" onclick="window.history.back()" causesvalidation="false">Gå tilbage</button>
            <button class="mdl-button mdl-button--primary mdl-button--raised mdl-js-button mdl-js-ripple-effect">Gem</button>
        </div>
    </fieldset>
}

我尝试在返回按钮上添加 causevalidation="false" 但它没有帮助。有没有办法强制它只在保存按钮上验证?

不要使用 windows.history.back(),使用重定向(RedirectToAction 等)。

windows.history.back() 将触发重新发送先前的请求(如果您是从 post 请求到达那里的)这是不受欢迎的行为。

而是创建 link

<a class="mdl-button mdl-button--primary mdl-button--raised mdl-js-button mdl-js-ripple-effect"
    asp-controller="MyController" asp-action="Index">Back</a>