返回ASP.Net Core MVC中的上一页

时间:2017-02-14 10:26:29

标签: asp.net-mvc razor asp.net-core

在我的客户详细信息页面中,我有一个按钮来编辑重定向到编辑页面的客户端记录。我在编辑页面上有一个“返回客户端详细信息”链接,我想将用户重定向回以前的客户端详细信息页面。

<a asp-controller="Client" asp-action="Detail" asp-route-id="@Model.ClientID">Return to client detail</a>

目前这可以按预期工作,但从头开始重新加载详细信息页面(即再次运行所有各种数据库查询)需要额外的时间。由于用户实际上只是在不更改客户端状态的情况下取消编辑,因此我希望将用户返回到上一个详细信息页面,而无需再次执行控制器操作。

基本上我想模拟浏览器后退按钮(以提高响应能力),但我不确定如何实现这个或者是否这样做是好的做法。一些指导意见将不胜感激。

由于

6 个答案:

答案 0 :(得分:9)

您可以使用

<a href='javascript:history.go(-1)'>Return to client detail</a>

或onclick

<a href="##" onClick="history.go(-1); return false;"> Return to client detail</a> 

答案 1 :(得分:7)

你知道吗?我讨厌JS所以我会用后端方面写回答。 HTTP referer是一个HTTP头字段,用于标识链接到所请求资源的网页的地址。所以,只需阅读并传递给视图(永远记住XSS和验证,用户可以轻松地spoof HTTP请求)

在动作控制器中

if(Request.Headers["Referer"] != null)
{
    ViewData["Reffer"] = Request.Headers["Referer"].ToString();
}

在视野中(剃刀)

@if(!string.IsNullOrWhiteSpace(ViewData["Reffer"]))
{
    <a href="@ViewData["Reffer"]">Return to client detail</a>
}

答案 2 :(得分:3)

对于IActionResult,您可以使用以下代码:

public IActionResult Test()
{
    return Redirect(Request.Headers["Referer"].ToString());
}

答案 3 :(得分:0)

应该是这样的

<input type="button" onclick= "history.go(-1)" value="Return to client detail" />

答案 4 :(得分:0)

我认为你需要摆脱通过控制器的想法。如果您需要使用关于href的asp net核心代码快速浏览,可以试试这个。

 <a asp-area="" onclick="history.go(-1);">Return to client detail</a>

答案 5 :(得分:0)

使用 Request.Headers["Referer"] 的注意事项 - 如果有人出于某种原因刷新目标页面,Request.Headers["Referer"] 将为空。 尽管页面刷新,但使用 history.go(-1) 仍可提供预期的行为。