Helper method to encode query string properly
When using Url.ContentUrl() in Optimizely 12, encodes spaces as + in the query string. If you want to encode the spaces as %20, use the below helper method.
public static string GetEncodedUrl(string href)
{
var decodedHref = System.Web.HttpUtility.UrlDecode(href);
int questionMarkIndex = decodedHref.IndexOf('?');
string path = questionMarkIndex >= 0 ? decodedHref.Substring(0, questionMarkIndex) : decodedHref;
var relativeUrl = UrlResolver.GetUrl(path);
string query = questionMarkIndex >= 0 ? decodedHref.Substring(questionMarkIndex + 1).Replace("&", "&") : string.Empty;
var encodedQuery = !string.IsNullOrEmpty(query) ? $"?{Uri.EscapeUriString(query)}" : query;
return $"{relativeUrl}{encodedQuery}";
}
works well
Hi, thank you for sharing your insights and contributing to the community.
That said, I wanted to share some constructive feedback. Some of the posts could benefit from a bit more context around the problem being addressed. Providing additional background can help readers better understand the issue and how your solution applies.
Additionally, I've noticed that many posts seem to have the same reviewer, which raises some concerns about objectivity. It's important that content on World Optimizely not only be informative but also genuinely helpful and independently reviewed.
I hope you take this feedback in the spirit it's intended to support continued improvement. Wishing you all the best, and thank you again for contributing.
Hi Manoj,
First of all I thank you for your suggestion about providing the context of the problem and I agree with you. I will try to explain the problem and solutions in my future posts.
FYI, The other reviewer is my friend for whom I post the solutions here instead of just helping him
Thanks
Sunil