如何在C#中获取MasterPage中的前一个URL?我正在寻找被重定向的页面。先谢了。
a8jjtwal1#
您可以通过UrlReferrer属性获取前一个URL的信息。这适用于MVC和Web表单。
UrlReferrer
Request.UrlReferrer.AbsoluteUri
字符串请注意,在第一页中,属性Request.UrlReferrer将为null。此外,如果发生重定向(例如,当用户登录到网页时)。此属性基于HTTP_REFERER变量,因此您可以使用此属性。
Request.UrlReferrer
Request.ServerVariables["HTTP_REFERER"]
型由于HTTP_REFERER是由客户端发送的变量,因此它可能会被请求更改或删除。此外,当引用URL以https开头时,不会设置该变量。This文章提到了几点为什么Request.UrlReferrer可以为null。
https
vq8itlhq2#
通常使用查询字符串参数来实现这一点:current?previousUrl=/some/11的。这将允许您在母版页代码隐藏中使用Context.Request.QueryString["previousUrl"]从服务器端代码访问此值。
current?previousUrl=/some/11
Context.Request.QueryString["previousUrl"]
kokeuurv3#
string urlName = Request.UrlReferrer.ToString();
字符串
rqqzpn5f4#
从.NET 6.0开始,UrlReferrer对象已从Request(HttpRequest)对象中弃用。它现在作为Request.Headers字典的一部分存储。访问UrlReffer对象的新方法是:
string urlReferrer = Request.Headers["Referer"]!.ToString();
字符串注意:在某些情况下,此对象可能为null。最安全的做法是在访问对象之前先检查它是否为null。
string? urlReferrer = null; if (Request.Headers.ContainsKey("Referer")) { urlReferrer = Request.Headers["Referer"]!.ToString(); }
型
4条答案
按热度按时间a8jjtwal1#
您可以通过
UrlReferrer
属性获取前一个URL的信息。这适用于MVC和Web表单。字符串
请注意,在第一页中,属性
Request.UrlReferrer
将为null。此外,如果发生重定向(例如,当用户登录到网页时)。此属性基于HTTP_REFERER变量,因此您可以使用此属性。
型
由于HTTP_REFERER是由客户端发送的变量,因此它可能会被请求更改或删除。此外,当引用URL以
https
开头时,不会设置该变量。This文章提到了几点为什么
Request.UrlReferrer
可以为null。vq8itlhq2#
通常使用查询字符串参数来实现这一点:
current?previousUrl=/some/11
的。这将允许您在母版页代码隐藏中使用
Context.Request.QueryString["previousUrl"]
从服务器端代码访问此值。kokeuurv3#
字符串
rqqzpn5f4#
从.NET 6.0开始,UrlReferrer对象已从Request(HttpRequest)对象中弃用。它现在作为Request.Headers字典的一部分存储。
访问UrlReffer对象的新方法是:
字符串
注意:在某些情况下,此对象可能为null。最安全的做法是在访问对象之前先检查它是否为null。
型