C# 后退按钮导致当前页面回发。NETMVC
我有一个具有“详细信息”操作和“编辑”操作的控制器。 我使用C# 后退按钮导致当前页面回发。NETMVC,c#,asp.net,asp.net-mvc,razor,back-button,C#,Asp.net,Asp.net Mvc,Razor,Back Button,我有一个具有“详细信息”操作和“编辑”操作的控制器。 我使用View()导航到编辑然后呈现具有部分视图的页面 在局部视图中,有一种形式: @using (Html.BeginForm("CreateOrEdit", "Licenses", FormMethod.Post, new { @class = "pure-form pure-form-aligned", id = "change", onsubmit = "process(this);" })) { @Html.AntiForg
View()导航到编辑代码>然后呈现具有部分视图的页面
在局部视图中,有一种形式:
@using (Html.BeginForm("CreateOrEdit", "Licenses", FormMethod.Post, new { @class = "pure-form pure-form-aligned", id = "change", onsubmit = "process(this);" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<div class="floatLeft width100per">
@Html.HiddenFor(model => model.Id)
@Html.HiddenFor(model => model.CustomerId)
<button onclick="goBack()" type="button" class="pure-button pure-button-primary newButton">Back</button>
<input type="submit" value="Save" class="pure-button pure-button-primary newButton marginRight10" onclick="getModules(); setGuid('@Guid.NewGuid()');" />
<div class="floatLeft pure-form">
如果我导航到编辑并按下后退按钮,一切正常。
但是如果我按下保存按钮,表单将被提交,并且创建和编辑操作将被调用-仍然可以
CreateAndEdit操作使用:
RedirectToAction("Details", new { id = license.Id });
要再次导航到详细信息页面
然后,如果我再次进入“编辑”,然后按Back-
CreateAndEdit再次调用操作-不正常
当按下back时,我如何始终返回“详细信息”页面而不调用CreateAndEdit。我认为您看到的行为是标准的浏览器行为。提交表单后,如果按下浏览器的“后退”按钮(与历史记录.go(-1);
),表单将重新提交
作为一种解决方法,如果只能从“详细信息”页面访问“CreateOrEdit”页面,只需直接重定向到“详细信息”页面,而不必查看浏览器历史记录
function goBack() {
location.href = '@Html.Raw(Url.Action("Details", "Licenses", new { id = Model.License.Id }))';
}
我认为您看到的行为是标准的浏览器行为。提交表单后,如果按下浏览器的“后退”按钮(与历史记录.go(-1);
),表单将重新提交
作为一种解决方法,如果只能从“详细信息”页面访问“CreateOrEdit”页面,只需直接重定向到“详细信息”页面,而不必查看浏览器历史记录
function goBack() {
location.href = '@Html.Raw(Url.Action("Details", "Licenses", new { id = Model.License.Id }))';
}
由于表单提交等原因,您需要为不希望用户返回的页面禁用缓存
你可以试着用
[OutputCache(NoStore=true, Duration=0)]
我相信[NoCache]
也可以作为控制器操作的装饰。由于表单提交等原因,您需要为不希望用户返回的页面禁用缓存
你可以试着用
[OutputCache(NoStore=true, Duration=0)]
我相信[NoCache]
也可以作为控制器动作的装饰。定义为锚(@ldanLevi您可以尝试使用如图所示的Ajax调用,并通知我它是否对您有效。@MuratYıldız它可以工作,但与返回时不同。.定义为锚(@ldanLevi您可以尝试使用如图所示的Ajax调用,并通知我它是否对您有效。@MuratYıldız它可以工作,但与返回不一样。谢谢,我也想到了。但我正在寻找另一种解决方案,以保持历史的原样。谢谢,我也想到了。但我正在寻找另一种解决方案,以便更好地维护历史保持历史的原貌。