嘿伙计我将formCollection值保存到数组时遇到问题。
所以我有一个由单选按钮组成的表单,我试图传递给某个动作。
单选按钮如下所示:
<input id="Likelihood" name="Likelihood" type="radio" value="5" /><br/>
<input id="Priority" name="Priority" type="radio" value="5" /><br/>
<input id="Type" name="Type" type="radio" value="7" /><br/>
这是我采用以下形式的方法:
public ActionResult TriageScore(TriVM tri, FormCollection formCollection)
{
int i = 0;
string[] value = new string[formCollection.Count];
foreach (var key in formCollection.AllKeys)
{
value[i] = formCollection[key];
}
}
因此,在参数中,formCollection具有长度为3的AllKeys值。内容为[0]可能性,[1]优先级,[2]类型。当我将值存储到数组中时,它只存储最后一个单选按钮(类型)中的7,其余为空。
我忘了提及可能类型和优先级并不总是这个名字。这些名称将动态更改,因此我不能简单地引用name = Likelihood
。
答案 0 :(得分:2)
你需要在你的foreach循环中增加“i”,就像这样
public ActionResult TriageScore(TriVM tri, FormCollection formCollection)
{
int i = 0;
string[] value = new string[formCollection.Count];
foreach (var key in formCollection.AllKeys)
{
value[i] = formCollection[key];
i++;
}
}