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; }
这篇文档对您是否有帮助?