简体   繁体   English

如何在ASP.NET MVC中枚举表单集合?

[英]How can a formcollection be enumerated in ASP.NET MVC?

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

Here are 3 ways to do it specifically with a FormCollection object. 以下是使用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];
  }
}
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];
}

I use this: 我用这个:

string keyname;
string keyvalue;

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

hope it helps someone. 希望它能帮助某人。

In .NET Framework 4.0, the code to use the ValueProvider is: 在.NET Framework 4.0中,使用ValueProvider的代码为:

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

And in VB.Net: 在VB.Net中:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM