¿Cómo se puede enumerar un formcollection en ASP.NET MVC?

¿Cómo puedo enumerar todas las claves / valores de un FormCollection (system.web.mvc) en ASP.NET MVC ?

Aquí hay 3 formas de hacerlo específicamente con un objeto 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]; } } 
 foreach(KeyValuePair 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]; } 

En .NET Framework 4.0, el código para usar ValueProvider es:

  IValueProvider valueProvider = formValues.ToValueProvider(); foreach (string key in formValues.Keys) { ValueProviderResult result = valueProvider.GetValue(key); string value = result.AttemptedValue; } 

Yo uso esto:

 string keyname; string keyvalue; for (int i = 0; i <= fc.Count - 1; i++) { keyname = fc.AllKeys[i]; keyvalue = fc[i]; } 

Espero que ayude a alguien.

Y en VB.Net:

 Dim fv As KeyValuePair(Of String, ValueProviderResult) For Each fv In formValues.ToValueProvider Response.Write(fv.Key + ": " + fv.Value.AttemptedValue) Next