我正在尝试在基于asp.net的网站上诊断某些行为。以下是场景:
用户位于第1页并执行查询,该查询使用数据和重定向到第2页的超链接填充GridView。
用户点击超链接并重定向到第2页,他们可以在其中编辑数据。在page2的底部是一个取消按钮,应该将用户带回第1页。
我想让“取消”按钮将用户返回到第1页,并填充其搜索结果。如果单击浏览器上的“后退”按钮但我无法使用response.redirect模拟此行为,则此方法有效。
我尝试了以下几种组合:
reponse.redirect(request.url.tostring())
并且每个实例似乎都引用了page2而不是page1
你有什么建议吗?
答案 0 :(得分:1)
这取决于你正在使用的.net版本。在.net Core中,Request上的标题包含您需要的信息。
Request.Headers["Referer"]
这包含查询字符串的完整URL。您可以在控制器中捕获它并将其设置为视图模型上的值(或将其填充到视图包中)。
if (Request.Headers.Keys.Contains("Referer"))
ViewBag.Referer = HttpContext.Request.Headers["Referer"];
else
ViewBag.Referer = "";
然后在视图中使用string.IsNullOrEmpty(ViewBag.Referer)
。我出于安全原因添加了检查,为什么如果他们直接到达页面没有链接?
您也可以使用Request.Headers.TryGetValue
。它有点安全,因为可能有重复的标题但是真的不应该,特别是在这里。