如何在C#中获取以前的URL?

时间:2014-08-03 20:48:30

标签: c# asp.net url url-rewriting

如何在C#中的母版页中获取上一个网址?

我试图找到重定向的页面。

提前致谢。

3 个答案:

答案 0 :(得分:10)

您可以使用UrlReferrer属性获取上一个网址的相关信息。这适用于MVC和Web表单。

Request.UrlReferrer.AbsoluteUri

请注意,在第一页中,属性Request.UrlReferrer将为null。此外,如果发生重定向(例如,当用户登录到网页时),它将为null。

此属性基于 HTTP_REFERER 变量,因此您可以使用此属性。

Request.ServerVariables["HTTP_REFERER"]

由于HTTP_REFERER是客户端发送的变量,因此请求可能会更改或删除它。此外,当引用网址以https开头时,不会设置变量。

This文章提到了为什么Request.UrlReferrer可以为空的几点。

答案 1 :(得分:3)

通常使用查询字符串参数来实现此目的:current?previousUrl=/some/11

这将允许您使用主页代码隐藏中的Context.Request.QueryString["previousUrl"]从服务器端代码访问此值。

答案 2 :(得分:0)

case .success(let value):

    let json = JSON(value)
    let successStatus = json["success"].stringValue

    if successStatus == "0" {
        let errorMessage = json["message"].stringValue
        completion(nil,errorMessage,nil)
    } else if successStatus == "1" {

        let productsArrayJSON = json["product_data"].arrayValue
        var productsData = [Product]()

        for productJSON in productsArrayJSON {
            if let productDictionary = productJSON.dictionaryObject {
                let product = Product(dictionary: productDictionary)
                productsData.append(product)
            } else {
                completion(nil,nil,nil)
                break
            }
        }

        completion(nil,nil,productsData)
    }
    else {
        // Decide how you should call the completion block
        completion(xx, yy, zz)
    }