3

我以网格 [basic html table] 的形式显示了一个数据列表并放置了文本框,以便我们可以在网格内进行编辑并发布值以便我可以保存它。列表并不大,大约 5-10 行。

如何在控制器中访问这些表单值?FormCollection似乎不起作用,我什至无法通过Request.Form[]. 我希望它以列表的形式返回,以便我可以遍历它并获取新值。

.cshtml

 <form action="/Parameter/StudentWeights" method="post">
     <table>
    <tr>
        <th>
            Category
        </th>
        <th>
            CategoryAlias
        </th>

        <th>
            YearCode
        </th>
          <th>
            ClassKto8
        </th>
        <th>
            Class9to12
        </th>
        <th></th>
    </tr>
    @foreach(var item in Model.StudentWeights) {
    <tr>
    <td>
            @Html.HiddenFor(modelItem => item.CategoryId)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Category)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.CategoryAlias)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.YearCode)
        </td>
        <td>
            @Html.EditorFor(modelItem => item.ClassKto8)
        </td>
         <td>
            @Html.EditorFor(modelItem => item.Class9to12)
        </td>

    </tr>
}

</table>
<input type="submit" value = "Submit" />
 </form>

控制器

[HttpPost]
public ActionResult studentWeights(FormCollection collection)
{
    try
    {
        // TODO: Add update logic here

        //service.
        foreach (var item in collection)
        { 
            int x = item. // i want to loop through it and access the values.
        }
    }
    catch
    {
        return View();
    }
}

请帮助我如何获得这些值。我不想使用 JEditable 或任何第三方 jQuery 工具。

有什么方法可以在单击按钮时创建自定义类型并在 JavaScript 或 jQuery 中分配值,然后将其发送到我的控制器操作?

非常感谢,任何建议都会很有帮助。

4

1 回答 1

1

您需要以不同的方式访问表单集合。表单集合是发布到控制器的值的键值对。表单集合[“后值”]

[HttpPost]
public ActionResult studentWeights(FormCollection formCollection)
{
    foreach (string _formData in formCollection)
    {
        var x = formCollection[_formData];
    }

}

以下是遍历表单集合的几种方法 http://stack247.wordpress.com/2011/03/20/iterate-through-system-web-mvc-formcollection/

于 2012-10-11T12:41:25.323 回答