C#获得来源页面的URL

ASP.NET的UrlReferrer方法虽然可以获取来源网址,但最近在进行移动开发的时候,虽然UrlReferrer获取的包含中文参数的地址是正确的,但设置为Link的NavigateUrl属性时,点击链接返回后,来源网址获取的是乱码。所以使用该替代方法getParam:

   private string getParam(string strHref, string strName)
    {
        int intPos = strHref.IndexOf("?");
        if (intPos < 1)
            return "";

        string strRight = strHref.Substring(intPos + 1);

        string[] arrPram = Utils.SplitString(strRight, "&");//SplitString方法:将某字符串按特定字符或字符串分割为字符串数组
        for (int i = 0; i < arrPram.Length; i++)
        {
            string[] arrPramName = Utils.SplitString(arrPram[i], "=");
            if (arrPramName[0].ToLower() == strName.ToLower()) return arrPramName[1];
        }
        return "";
    }

如何使用:

protected void Page_Load(object sender, EventArgs e)
    {
        string url = Request.UrlReferrer.ToString();
        url = "SearchResult.aspx?sArea=" + Server.UrlEncode(getParam(url, "sArea")) + "&sKeyword=" + Server.UrlEncode(getParam(url, "sKeyword"));
        linkBack.NavigateUrl = url;
    }

你可能感兴趣的:(C#获得来源页面的URL)