是否可以使用MVC3将一组表记录从前端传递到后端

时间:2014-04-17 08:59:09

标签: asp.net ajax asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我在前端显示一个表,其中表记录是可编辑的,每个记录都有一个复选框。

如果通过选中并提交相应的复选框选择了某些记录,则所有选定的记录都必须存储在后端表中。

是否可以使用Asp.net MVC3?

如果是,如何将视图列表从View传递给控制器​​和模型?

1 个答案:

答案 0 :(得分:1)

据我了解,您希望在发布期间将所选复选框的数组传递给ActionResult。 见下面的例子

<强>型号:

public class EditableItemModel
{
    public bool SelectedItem { get; set; }
    public string Name { get; set; }
}

<强>控制器:

    public ActionResult Index()
    {
        var model = new EditableItemModel[]
                        {
                            new EditableItemModel { SelectedItem = true },
                            new EditableItemModel()
                        };

        return View(model);
    }

    [HttpPost]
    public ActionResult Index(EditableItemModel[] tableItems)
    {
        IEnumerable<EditableItemModel> selectedItems = tableItems.Where(i => i.SelectedItem);

        return RedirectToAction("Index");
    }

查看:

@using CheckboxInTableExample.Models;
@model EditableItemModel[]

@using (Html.BeginForm("Index"))
{   
    <table>
    @for (int i = 0; i < Model.Length; i++)
    {
         <tr>
             <td>
                    @Html.CheckBoxFor(m => m[i].SelectedItem)
             </td>  
             <td>
                    @Html.EditorFor(m => m[i].Name)
             </td>      
         </tr>
    }
    </table>
    <input type="submit" title="Submit" />
}

希望这会有所帮助。