I have seen this answer describing ASP.NET support for keyless (not valueless) parameters, like http://some.url?param1¶m2
, and confirmed them to be viewable on Request.QueryString
like:
var values = this.Request.QueryString.GetValues(null);
values.Any(o => o == "param1");
This is fine and dandy but now I want to generate urls like this. My first intuition was to use the RouteValueDictionary: routeValues
parameter of Url.Action
with null as a key:
@{
var dict = new RouteValueDictionary();
dict.Add(null, "param1");
dict.Add(null, "param2");
}
<a href="@Url.Action("ActionName", dict)">Very link, amaze</a>
But apparently C# forbids nulls as dictionary keys because of reasons.
I have also tried the empty string as the key, but it results in a query string like: ?=param1,=param2
which contains 2 more equal signs that I want it to.
Of course I can string manipulate the heck out of my URL and add the ¶m1
part to the query string, but I was hoping for a concise solution.