Как можно перечислить formcollection в ASP.NET MVC? - PullRequest
43 голосов
/ 18 апреля 2009

Как мне перечислить все ключи / значения FormCollection (system.web.mvc) в ASP.NET MVC ?

Ответы [ 6 ]

89 голосов
/ 18 апреля 2009

Вот 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];
  }
}
6 голосов
/ 20 апреля 2009
foreach(KeyValuePair<string, ValueProviderResult> kvp in form.ToValueProvider())
{
    string htmlControlName = kvp.Key;
    string htmlControlValue = kvp.Value.AttemptedValue;
}
4 голосов
/ 18 апреля 2009
foreach(var key in Request.Form.AllKeys)
{
   var value = Request.Form[key];
}
1 голос
/ 19 апреля 2013

В .NET Framework 4.0 код для использования ValueProvider:

        IValueProvider valueProvider = formValues.ToValueProvider();
        foreach (string key in formValues.Keys)
        {
            ValueProviderResult result = valueProvider.GetValue(key);
            string value = result.AttemptedValue;
        }
1 голос
/ 05 июля 2012

Я использую это:

string keyname;
string keyvalue;

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

надеюсь, это кому-нибудь поможет.

0 голосов
/ 13 августа 2009

А в VB.Net:

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