如何在ASP.NET MVC中枚举formcollection?

mrb*_*lah 43 asp.net-mvc enumerator

如何枚举ASP.NET MVC中 FormCollection(system.web.mvc)的所有键/值?

Ste*_*ock 89

以下是使用FormCollection对象的3种方法.

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];
  }
}
Run Code Online (Sandbox Code Playgroud)


小智 6

foreach(KeyValuePair<string, ValueProviderResult> kvp in form.ToValueProvider())
{
    string htmlControlName = kvp.Key;
    string htmlControlValue = kvp.Value.AttemptedValue;
}
Run Code Online (Sandbox Code Playgroud)

  • 这适用于Framework 3.5,其中ToValueProvider返回IDictionary.在Framework 4.0中,ToValueProvider返回一个IValueProvider. (2认同)