Asp.net mvc 如何在ASP.NET MVC中枚举formcollection?
如何枚举的所有键/值Asp.net mvc 如何在ASP.NET MVC中枚举formcollection?,asp.net-mvc,enumerator,Asp.net Mvc,Enumerator,如何枚举的所有键/值 在?中的FormCollection(system.web.mvc)这里有3种方法专门用于FormCollection对象 public ActionResult SomeActionMethod(FormCollection formCollection) { foreach (var key in formCollection.AllKeys) { var value = formCollection[key]; } foreach (var
在?中的FormCollection(system.web.mvc)这里有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];
}
}
foreach(形式为.ToValueProvider()的KeyValuePair kvp)
{
字符串htmlControlName=kvp.Key;
字符串htmlControlValue=kvp.Value.AttemptedValue;
}
和在VB.Net中:
Dim fv As KeyValuePair(Of String, ValueProviderResult)
For Each fv In formValues.ToValueProvider
Response.Write(fv.Key + ": " + fv.Value.AttemptedValue)
Next
我用这个:
string keyname;
string keyvalue;
for (int i = 0; i <= fc.Count - 1; i++)
{
keyname = fc.AllKeys[i];
keyvalue = fc[i];
}
字符串键名;
字符串键值;
对于.NET Framework 4.0中的(int i=0;i),使用ValueProvider的代码为:
IValueProvider valueProvider = formValues.ToValueProvider();
foreach (string key in formValues.Keys)
{
ValueProviderResult result = valueProvider.GetValue(key);
string value = result.AttemptedValue;
}
当我尝试此操作时,我得到“表达式的类型为'System.Web.Mvc.IValueProvider',这不是集合类型”。如果我省略了它编译的“ToValueProvider”,但我得到“指定的强制转换无效”@DrydenMaker-这是因为您使用的是4.0。这个答案适用于3.5。进一步,我们如何找到该项是从文本框、隐藏字段还是组合框等返回的?这适用于框架3.5,其中ToValueProvider返回IDictionary。在框架4.0中,ToValueProvider返回IValueProvider。请注意:ToValueProvider()在框架3.5和4.0之间进行了更改,是否可以在键值对中从模型创建或将值转换为formcollection
?
string keyname;
string keyvalue;
for (int i = 0; i <= fc.Count - 1; i++)
{
keyname = fc.AllKeys[i];
keyvalue = fc[i];
}
IValueProvider valueProvider = formValues.ToValueProvider();
foreach (string key in formValues.Keys)
{
ValueProviderResult result = valueProvider.GetValue(key);
string value = result.AttemptedValue;
}