在控制器中访问表单值,我试图将整个网格发布回post方法ASP.net MVC

时间:2012-10-03 17:03:37

标签: c# asp.net-mvc

我以网格[基本html表格]的形式显示了一个数据列表,并放置了文本框,以便我们可以在网格内编辑并发布值,以便我可以保存它。列表不大,大约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中分配值,然后将其发送到我的控制器操作?

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

1 个答案:

答案 0 :(得分:1)

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

[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/