У меня мобильное приложение с несколькими папками. Эти папки используются в качестве переменных, которые я добавлю к параметрам:
//Get the URL
string url = HttpContext.Current.Request.Url.AbsolutePath;
//Location
string location = "";
//Check if string contains /
if (url.Contains('/'))
{
//Get location
string[] words = url.Split('/');
//Set location
location = words[1];
//Now check if string contains ?
if (location.Contains('?'))
{
//Remove ?
string[] removeQ = location.Split('?');
//Reset location
location = removeQ[0];
}
}
После того, как я укажу путь от URL, я должен перенаправить в зависимости от типа телефона:
if (Request.UserAgent.ToUpper().Contains("BLACKBERRY"))
{
//Now we check the version
if (double.Parse(Request.Browser.Version) <= 5)
{
Response.Redirect("http://myWebsite.com/Default.aspx?location= " + location);
}
else if (double.Parse(Request.Browser.Version) >= 6)
{
Response.Redirect("http://myWebsite.com/Default.aspx?location= " + location);
}
else
{
Response.Redirect("http://myWebsite.com/Default.aspx?location= " + location);
}
}
else if (Request.UserAgent.ToUpper().Contains("HTC")) //HTC phones cannot handle JQuery mobile
{
Response.Redirect("http://myWebsite.com/Default.aspx?location= " + location);
}
else if (Request.UserAgent.ToUpper().Contains("ANDROID")) //Certain androids are out of date
{
if (double.Parse(Request.Browser.Version) > 2)
{
Response.Redirect("http://myWebsite.com/Default.aspx?location= " + location);
}
else
{
Response.Redirect("http://myWebsite.com/Default.aspx?location= " + location);
}
}
else
{
Response.Redirect("http://myWebsite.com/Default.aspx?location= " + location);
}
}
Проблема в том, что на location
будет добавлено «% 20» впереди. Этого не произойдет, если я протестирую его на рабочем столе, только на телефонах.
Почему это происходит? Как я могу предотвратить это?