ASP .Net MVC 2自定义Helper Grid未将模型发布到控制器操作

时间:2011-04-04 19:33:52

标签: asp.net-mvc-2

我创建了一个自定义帮助器,它渲染网格并接收强类型视图的模型作为参数。

基本上我的观点如下:

<% using (Html.BeginForm("UpdateValues", "Home", FormMethod.Post)) { %> 

    <%= Html.MyGrid(Model)%>

    <input type="submit" value="Update Values" />

<%} %>

但是当我点击提交按钮时,模型上的所有值都为空。

这就是控制器的样子:

    [HttpPost]
    public string UpdateValues(AssignmentResultsVm assignmentResults)
    {
        //..... do something
    }

我该如何做到这一点?

提前致谢。

1 个答案:

答案 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中有所体现。