2015-05-19 2 views
0

В качестве части проверки я пытаюсь использовать список значений из раскрывающегося списка формы. При создании переменной типа var form = HttpContext.Current.Request.Form я могу видеть все значения из формы. В отладчике Visual Studio список, который мне интересен, показывает как массив пар текста/значения. Как я могу извлечь значения из формы?Получите массив пар текста/значения из HttpContext.Current.Request.Form

ответ

0

Formуже коллекция пар «текст/стоимость». Это тип NameValueCollection, и он хранит пары «имя/значение». Отладчик не делает его очень простым для навигации, поскольку он не показывает вам значения, если вы не указали в него. Тем не менее, это очень легко перечислить:

foreach (string key in form.AllKeys) 
{ 
    Console.WriteLine("{0} - {1}", key, form[key]); 
} 

Если вам не нравится, не будучи в состоянии видеть значения в окнах отладчика, вы можете скопировать пары имя/значение словаря пар ключ/значение первого , а затем проверить словарь:

var dictionary = new Dictionary<string, object>(); 
HttpContext.Current.Request.Form.CopyTo(dictionary); 

Вы можете получить доступ к значениям по ключу или итерации это точно так же, как и выше, хотя на самом деле нет значения в преобразовании исходной коллекции в словарь, если ваши единственные тиски, как отладчик отображает его содержимое.

+0

Это хорошо, но я пытаюсь извлечь определенный массив значений. В словаре у меня есть массив значений, подобных этому 'MyFormValue [0] .Text'' MyFormValue [0] .Value'. Как я могу извлечь все значения из массива MyFormValue? – navig8tr

+0

Я думаю, мне нужно сначала получить счет, а затем просто пропустить их через них? – navig8tr

+0

Вы можете получить массив ('List <>') только значений с помощью 'form.AllKeys.Select (k => form [k]). ToList()' или если вы используете подход «Словарь» , 'dictionary.Values.ToList();'. –

Смежные вопросы