ASP.NET MVC 我可以添加请求过滤器来跟踪上一页
本文关键字:跟踪 一页 过滤器 请求 NET MVC 我可以 添加 ASP | 更新日期: 2023-09-27 18:35:07
我有 ASP.NET MVC项目,我有一些页面(我们称之为目标页面),我可以从多个页面访问。所以我想跟踪哪个页面重定向到目标页面,以便我可以再次返回它。我对请求过滤器感到红色..我可以在我的情况下使用它吗?提前致谢:)
只需在查询字符串中传递返回 URL。换句话说,而不是像这样重定向:
return RedirectToAction("Destination");
做:
return RedirectToAction("Destination", new { returnUrl = Request.RawUrl });
当然,您的"目标"操作需要接受此参数:
public ActionResult Destination(Foo otherParam, string returnUrl)
然后,当您完成在"目的地"中执行的操作后,通过以下方式重定向回:
if (!String.IsNullOrWhiteSpace(returnUrl) && Url.IsLocalUrl(returnUrl))
{
return Redirect(returnUrl);
}
return RedirectToAction("Fallback");
IsLocalUrl
检查是通过确保返回的URL实际上是您网站的本地(即相对的)来防止查询字符串被篡改。
您可以使用
Request.UrlReferrer
获取引用页面
否则将最后一个 URL 保存在会话变量中
喜欢
Session["returnUrl"] = Request.RawUrl;
URL 引荐来源网址仅由实际的客户端单击(锚标记、按钮)填充。
当你手动把它放在URL中时不是(这是我的JavaScript正在做的事情)。
我正在做的解决方案是在 whatever.aspx 页面上创建一个 cookie,并在我再次重定向之前从 JavaScript 中读取该 cookie。