NameValueCollection.AllKeys.Contains всегда возвращает false
System.Web.HttpContext.Current.Request.Params.AllKeys.Contains(key)
всегда возвращает false, но
System.Web.HttpContext.Current.Request.Params[key]
возвращает значение ключа.
Может ли кто-нибудь сказать мне, почему это происходит?
В моем случае ключ "ctl00$ContentPlaceHolder1$username", я отладил и проверил это как в System.Web.HttpContext.Current.Request.Params.AllKeys, так и в System.Web.HttpContext.Current.Request.Params, точнее ключ существовал.
1 ответ
Решение
Params
коллекция инициализируется без учета регистра строк. Когда вы используете Contains
вы не предоставляете никакого компаратора, поэтому вы используете значение по умолчанию, которое будет использовать сравнение с учетом регистра.