I am constructing a URL at runtime. So far I have done like
public string BuildURLAndNavigate(CodeType codeType)
{
string vURL = string.Empty;
string mstrNavServer = "http://some.com/nav";
vURL = ConcatenateString(mstrNavServer , "/somepage.asp?app=myapp");
//Build Code Type
switch (codeType)
{
case CodeType.Series:
vURL = ConcatenateString(vURL , "&tools=ser");
break;
case CodeType.DataType:
vURL = ConcatenateString(vURL , "&tools=dt");
break;
}
//build version
string VER_NUM = "5.0";
vURL = ConcatenateString(vURL , ConcatenateString("&vsn=" , VER_NUM));
return vURL;
}
private string ConcatenateString(string expression1, string expression2)
{
return string.Concat(expression1 + expression2);
}
But I am not happy with the one I am doing.
I am sure that there is definitely a best practice / better approach than this.
Kindly help me out in guiding for the same.
Thanks
Never build urls using strings, string builders, string concatenations.
You could start by defining a custom collection which will take care of properly URL encoding any value being added to it:
And then simply: