在 ASP.NET MVC 中是不是有等价于 redirect_to :back

Posted

技术标签:

【中文标题】在 ASP.NET MVC 中是不是有等价于 redirect_to :back【英文标题】:Is There An Equivalent to redirect_to :back in ASP.NET MVC在 ASP.NET MVC 中是否有等价于 redirect_to :back 【发布时间】:2010-11-19 08:37:46 【问题描述】:

在 ASP.NET MVC 中是否有与 Ruby On Rails 的 redirect_to :back 等效的功能?

提交表单之后呢?例如:

从 page1 用户单击指向 page2 的链接。在page2提交表单,然后我想重定向到page1。

如果我硬编码重定向到第 1 页,这将非常有用。但是,如果用户从第8页点击到第2页的链接,在第2页提交表单后,如何重定向回第8页而不是第1页?

【问题讨论】:

【参考方案1】:

如果您想使用 Jan 的代码作为操作的 return 值,那么只需删除 Response. 部分,因为 Response.Redirect 将返回 void。你可以这样做...

public ActionResult Index()
    
    return Redirect(Request.UrlReferrer.ToString());

如果您要发回表单,请查看这个 SO question,它可能会有所帮助。

How to RedirectToAction in ASP.NET MVC without losing request data

【讨论】:

【参考方案2】:

您可以使用 Page.PreviousPage 从代码中获取对上一页的引用;虽然我不确定这是否存在于 MVC 中。

您也可以只重定向到推荐人:

Response.Redirect(Request.UrlReferrer.ToString());

【讨论】:

这行得通,但是如果您是从表单发回的呢?我得研究一下 Rails 是如何处理这个问题的。

以上是关于在 ASP.NET MVC 中是不是有等价于 redirect_to :back的主要内容,如果未能解决你的问题,请参考以下文章

EF Core 中的 ASP.NET Core 5 MVC 和 Identity - 基于资源的授权

防止在 ASP.NET MVC 中缓存 WEB API 数据

ASP .NET MVC5 中的 CORS

为啥在 ASP.NET MVC 中使用 lambdas 而不是反射?

ASP.NET MVC动作方法使用Session在其它方法中无法取值

Wordpress 类似于 ASP.NET MVC2/3 或 ASP.NET 4.0 中的动态永久链接