В настоящее время я копаюсь внутри FormCollection
в MVC и задаюсь вопросом о разнице в значении и ожидаемом использовании между свойствами AllKeys
и Keys
. Я знаю, что AllKeys
— это string[]
, а Keys
— это KeysCollection
, но если бы вам пришлось просматривать поля формы, отправленные во время публикации, зачем бы вы предпочли одно свойство другому? Это просто соглашение использовать AllKeys
для быстрой проверки существования определенного ключа? У меня есть несколько кнопок отправки в одной из моих форм, и я использую AllKeys
, чтобы быстро проверить, какая из них фактически использовалась для отправки формы, но это заставило меня задуматься о предполагаемой разнице между ними, если она действительно есть.
Большую часть времени я буду использовать привязку модели и передавать объект ViewModel или Command обратно в действие контроллера, но есть ли конкретные варианты использования FormCollection.Keys
, о которых я не знаю? Если быстро заглянуть внутрь NameValueCollection
и NameObjectCollectionBase
, то окажется, что KeysCollection
на самом деле просто набор строк, скорее похожий на string[]
. Возможно, один из них был представлен в более поздней версии фреймворка, а другой сохранен для обратной совместимости?