43

ASP.NET MVCで FormCollection (system.web.mvc) のすべてのキー/値を列挙するにはどうすればよいですか?

4

6 に答える 6

91

特に 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];
  }
}
于 2009-04-18T18:58:39.873 に答える
6
foreach(KeyValuePair<string, ValueProviderResult> kvp in form.ToValueProvider())
{
    string htmlControlName = kvp.Key;
    string htmlControlValue = kvp.Value.AttemptedValue;
}
于 2009-04-20T18:48:10.660 に答える
1

私はこれを使用します:

string keyname;
string keyvalue;

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

それが誰かを助けることを願っています。

于 2012-07-05T13:52:26.217 に答える
1

.NET Framework 4.0 では、ValueProvider を使用するコードは次のとおりです。

        IValueProvider valueProvider = formValues.ToValueProvider();
        foreach (string key in formValues.Keys)
        {
            ValueProviderResult result = valueProvider.GetValue(key);
            string value = result.AttemptedValue;
        }
于 2013-04-19T16:25:27.250 に答える
0

そしてVB.Netでは:

Dim fv As KeyValuePair(Of String, ValueProviderResult)
For Each fv In formValues.ToValueProvider
    Response.Write(fv.Key + ": " + fv.Value.AttemptedValue)
Next
于 2009-08-13T16:55:26.807 に答える