使用FormCollection获取并使用任何一个特定键的每个值
本文关键字:任何一 获取 FormCollection 使用 | 更新日期: 2023-09-27 18:09:42
我在视图中有一堆列表框,每个列表框有一个唯一的名称/id。当提交操作方法接收相应的数据:key = listbox name and value(s) =该listbox的所有选定值。
我如何获取任何一个键的所有值,并使用foreach语句等对每个值执行所需的操作?查看formcollection中可用的方法,它们有get(index)而不是get(key)…
谢谢…
这个应该也可以。
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();
}
好了,这就完成了任务。但希望有更有效的方法来做到这一点?
[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();
}
可能你是错误的,没有Get(键)方法,因为FormCollection实际上是一个类派生自NameValueCollection和它都有indexer属性接受名称(或键)和Get方法接受名称参数
您可以获得如下所示的键值对:
public ActionResult YourAction(FormCollection oCollection)
{
var Item = new List<KeyValuePair<string, string>>();
foreach (var key in oCollection.AllKeys)
{
Item.Add(new KeyValuePair<string, string>(key, oCollection[key]));
}
return View();
}