使用FormCollection获取和使用每个值的任何一个特定的键
问题描述:
我有一堆列表框在视图中,每个列表框有一个唯一的名称/编号。当提交 时,action方法接收相应的数据,即key = listbox name和value(s)=该列表框的所有选定值。使用FormCollection获取和使用每个值的任何一个特定的键
如何获取任意一个键的所有值并使用foreach语句等对每个值执行所需的操作?综观的FormCollection可用的方法他们得到(指数),并没有得到(钥匙)...
谢谢...
答
这应该做的伎俩以及
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(key)方法,因为的FormCollection实际上是从NameValueCollection中派生的类都具有其接受的名称(或键)索引属性和接受Get方法名称参数。