RSS Amplifier

Muhammad Rehan Saeed · Jul 14, 2018

ASP.NET Core Hidden Gem - QueryHelpers

0
Sign in to vote or save

Muhammad Rehan Saeed · Muhammad Rehan Saeed

Posted - 1 min read

I discovered a hidden gem in ASP.NET Core a couple of weeks ago that can help to build up and parse URL's called QueryHelpers. Here's how you can use it to build a URL using the AddQueryString method:

var queryArguments = new Dictionary<string, string>()
{
    { "static-argument", "foo" },
};
if (someFlagIsEnabled)
{
    queryArguments.Add("dynamic-argument", "bar");
}
string url = QueryHelpers.AddQueryString("/example/path", queryArguments);

Notice that there are no question marks or ampersands in sight. Where this really shines is when you want to add multiple arguments and then need to write code to work out whether to add a question mark or ampersand.

It's also worth noting that the values of the query arguments are URL encoded for you too. The type also has a ParseQuery method to parse query strings but that's less useful to us as ASP.NET Core controllers do that for you.

Finally, .NET also has a type called UriBuilder that you should know about. It's more geared towards building up a full URL, rather than a relative URL as I'm doing above. It has a Query property that you can use to set the query string but it's only of type string, so much less useful than QueryHelpers.AddQueryString.

Web Mentions

What's this?

Read the original on rehansaeed.com

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.