在mvc3中将模型从视图传递到控制器#

时间:2012-07-21 21:07:31

标签: c# asp.net-mvc-3 view model controller

 @foreach (var item in Model.AllManagementActions)
{
 <tr>
     <td>
         @Html.DisplayFor(modelItem => item.Id)
     </td>
     <td>
         @Html.DisplayFor(modelItem => item.Name)
     </td>      

我想将所有这些值传递给我的控制器。 ID,名称等 我不能只是通过该项目本身? 这是我目前的代码,但它不起作用。

<a class="complete" title="My Action" data-url="@Url.Action("Submit", "Period", new { tpId = Model.Id ,it = item})" style="cursor: pointer;">       

如果我传递item.name,item.id,item.number等

,它就有效

我可以通过该模型吗?

2 个答案:

答案 0 :(得分:3)

不要在您的视图中进行迭代 - 使用editor templates作为类型。

有一个'〜/ shared / EditorTemplates / ManagementAction.ascx'(如果使用razor,则为.cshtml),呈现单个ManagementAction

在视图中,而不是迭代使用:

@Html.EditorFor(model => model.AllManagementActions)

答案 1 :(得分:0)

是的,您可以传递整个模型,但是您应该使用提交按钮而不是锚标记,并将您的代码放在

using(Html.BeginForm)
{
   @foreach (var item in Model.AllManagementActions)
   {
      //your desire.
   }
   <input type="submit" value="Save" />
}

在您的控制器中,您将收到帖子上的模型

 [HttpPost]
 public ActionResult SaveViewData(YourModel model)
 {
    //your logic.
 }