【发布时间】:2009-04-18 03:23:05
【问题描述】:
如何枚举所有的键/值 ASP.NET MVC 中的 FormCollection (system.web.mvc)?
【问题讨论】:
-
进一步我们如何才能找到该项目是从文本框或隐藏字段或组合框等返回的?
如何枚举所有的键/值 ASP.NET MVC 中的 FormCollection (system.web.mvc)?
【问题讨论】:
这里有 3 种专门使用 FormCollection 对象的方法。
public ActionResult SomeActionMethod(FormCollection formCollection)
{
foreach (var key in formCollection.AllKeys)
{
var value = formCollection[key];
}
foreach (var key in formCollection.Keys)
{
var value = formCollection[key.ToString()];
}
// Using the ValueProvider
var valueProvider = formCollection.ToValueProvider();
foreach (var key in valueProvider.Keys)
{
var value = valueProvider[key];
}
}
【讨论】:
formcollection 吗?
foreach(KeyValuePair<string, ValueProviderResult> kvp in form.ToValueProvider())
{
string htmlControlName = kvp.Key;
string htmlControlValue = kvp.Value.AttemptedValue;
}
【讨论】:
foreach(var key in Request.Form.AllKeys)
{
var value = Request.Form[key];
}
【讨论】:
在 .NET Framework 4.0 中,使用 ValueProvider 的代码是:
IValueProvider valueProvider = formValues.ToValueProvider();
foreach (string key in formValues.Keys)
{
ValueProviderResult result = valueProvider.GetValue(key);
string value = result.AttemptedValue;
}
【讨论】:
我用这个:
string keyname;
string keyvalue;
for (int i = 0; i <= fc.Count - 1; i++)
{
keyname = fc.AllKeys[i];
keyvalue = fc[i];
}
希望对某人有所帮助。
【讨论】:
在 VB.Net 中:
Dim fv As KeyValuePair(Of String, ValueProviderResult)
For Each fv In formValues.ToValueProvider
Response.Write(fv.Key + ": " + fv.Value.AttemptedValue)
Next
【讨论】: