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;
}