我以网格[基本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中分配值,然后将其发送到我的控制器操作?
非常感谢,任何建议都会有所帮助。
答案 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/