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

本文关键字:文本 一个 数组 Request Current HttpContext Form 获取 | 更新日期: 2023-09-27 17:50:03

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

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

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);

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