从HttpContext.Current.Request.Form获取一组文本/值对

时间:2015-05-19 16:14:42

标签: c# asp.net-mvc

作为验证的一部分,我尝试使用表单上下拉框中的值列表。在创建像var form = HttpContext.Current.Request.Form这样的变量时,我可以看到表单中的所有值。在Visual Studio的调试器中,我感兴趣的列表显示为文本/值对的数组。如何从表单中提取值?

1 个答案:

答案 0 :(得分:1)

Form 已经" Text / Value"的集合对。它的类型是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);

您可以通过键访问值或以与上面相同的方式迭代它,尽管如果您唯一的抱怨是调试器显示其内容的方式,那么将原始集合转换为字典确实没有价值。