将formCollections值保存到数组

时间:2014-05-02 00:24:33

标签: c# arrays asp.net-mvc

嘿伙计我将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

1 个答案:

答案 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++;
            }
         }