我创建了一个自定义帮助器,它渲染网格并接收强类型视图的模型作为参数。
基本上我的观点如下:
<% using (Html.BeginForm("UpdateValues", "Home", FormMethod.Post)) { %>
<%= Html.MyGrid(Model)%>
<input type="submit" value="Update Values" />
<%} %>
但是当我点击提交按钮时,模型上的所有值都为空。
这就是控制器的样子:
[HttpPost]
public string UpdateValues(AssignmentResultsVm assignmentResults)
{
//..... do something
}
我该如何做到这一点?
提前致谢。
答案 0 :(得分:0)
您需要确保项目在网格中排列,以便默认模型绑定器可以将数据地图映射到您的视图模型类。
这是通过索引你绑定的数据的name属性来完成的:
<form method="post" action="/Home/Create">
<input type="text" name="[0].Title" value="Curious George" />
<input type="text" name="[0].Author" value="H.A. Rey" />
<input type="text" name="[1].Title" value="Code Complete" />
<input type="text" name="[1].Author" value="Steve McConnell" />
<input type="submit" />
</form>
您可以通过asp.net mvc的EditorTemplates功能为您完成此操作,该功能在this article中有所体现。