在 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 MVC 中使用 lambdas 而不是反射?