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 вы не предоставляете никакого компаратора, поэтому вы используете значение по умолчанию, которое будет использовать сравнение с учетом регистра.

Другие вопросы по тегам