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

OjM*_*OjM 6 asp.net-mvc razor asp.net-core

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

<a asp-controller="Client" asp-action="Detail" asp-route-id="@Model.ClientID">Return to client detail</a>
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢

Dia*_*ani 14

因为IActionResult您可以使用此代码:

public IActionResult Test()
{
    return Redirect(Request.Headers["Referer"].ToString());
}
Run Code Online (Sandbox Code Playgroud)

  • 您现在可以使用 ```return Redirect(Request.Headers.Referer.ToString());``` (2认同)

Bal*_*thu 10

您可以使用

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

或者点击

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

  • 我和海报有同样的问题 - 我想从细节返回到(“重”)搜索页面而不重新加载完整的搜索页面。此页面上的所有解决方案都执行完全重新加载(就像用户只需单击浏览器后退按钮一样)。如果不重新加载整个页面,是否没有解决方案可以返回......? (3认同)

J. *_*Doe 9

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

在行动控制器

if(Request.Headers["Referer"] != null)
{
    ViewData["Reffer"] = Request.Headers["Referer"].ToString();
}
Run Code Online (Sandbox Code Playgroud)

在视野中(剃刀)

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