我在视图中有一堆列表框,每个列表框都有一个唯一的名称/ ID。提交时 action方法接收相应的数据,即key = listbox name和value(s)=该列表框的所有选定值。
如何获取任何一个键的所有值,并使用foreach语句等对每个值执行所需的操作?查看formcollection中的可用方法,他们得到(索引)而不是get(key)...
...谢谢
答案 0 :(得分:12)
这应该也可以解决问题
public ActionResult YourAction(FormCollection oCollection)
{
foreach (var key in oCollection.AllKeys)
{
//var value = oCollection[key];
}
return View();
}
}
或
public ActionResult YourAction(FormCollection oCollection)
{
foreach (var key in oCollection.Keys)
{
//var value = oCollection[key.ToString()];
}
return View();
}
你不确定这个:
public ActionResult YourAction(FormCollection oCollection)
{
foreach (KeyValuePair<int, String> item in oCollection)
{
//item.key
//item.value
}
return View();
}
答案 1 :(得分:1)
好的,这可以完成工作。但希望有更有效的方法来做到这一点?
[HttpPost]
public ActionResult Edit(FormCollection form)
{
var count = form.Count;
int i = 0;
while(i <= count)
{
var ValueCollection = form.Get(i);
var KeyName = form.GetKey(i);
foreach(var value in ValueCollection)
{
//Your logic
}
i++;
}
return View();
}
答案 2 :(得分:1)
可能你没有Get(key)方法,因为FormCollection实际上是一个派生自NameValueCollection的类,它具有接受name(或key)的indexer属性和接受name参数的Get方法。< / p>
答案 3 :(得分:0)
您可以获得类似于下面的键值对:
*func = 10;