-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Description
From @austindrenski on Thursday, November 16, 2017 3:49:22 PM
QueryString.Create(IEnumerable<KeyValuePair<string, StringValues>> parameters) doesn't append a key unless it has associated values.
This was unexpected because it means that parsing an incoming query string into an IEnumerable<KeyValuePair<string, StringValues>> and then immediately reconstructing a QueryString results in information loss.
We ran across this after some new middleware attempted to validate parameter values (by treating all query string entries as KeyValuePair<string, StringValues>) and unexpectedly removed a key meant to be read as a switch/flag/indicator in the event no values are supplied.
Is this behavior intentional or defined by a standard?
Copied from original issue: aspnet/HttpAbstractions#969