1

我正在使用 ASP.Net MVC3,我有一个视图,其中显示了一个带有模型数据的简单表,如下所示:

+-------+---------------+----------------+
| 身份证 | 姓名 | 订购 |
+-------+---------------+----------------+
| 身份证 | 姓名 | 文本框 val=1 |
+-------+---------------+----------------+
| 身份证 | 姓名 | 文本框 val=3 |
+-------+---------------+----------------+
| 身份证 | 姓名 | 文本框 val=2 |
+-------+---------------+----------------+

+--------+ +--------------+
|提交 | | 更新订单 |
+--------+ +--------------+

在这里,Order 列包含带有 Order 值(1、3、2 等)的输入框。我需要[Item {ID, Name, Order}]通过阅读订单列来更新我的模型。

意思是,我需要通过读取 HTML 表格列将订单值提交给模型。这个怎么做?

4

1 回答 1

1

为每个项目创建一个视图模型:

    public class ItemViewModel
    {
        public string Id { get; set; }
        public string Name { get; set; }
        public string Value { get; set; }
    }

以及行动的模型:

    public class EditViewModel
    {
        public IEnumerable<ItemViewModel> Items { get;set; }
        public int Index { get; set; }
    }

像这样渲染行:

    @foreach (var item in Model.Items)
    {
        <tr>
            <td><input type="hidden" name="Id[@Model.Index]" value="@item.Id" />@item.Id</td>
            <td>@item.Name</td>
            <td><input type="text" name="Value[@Model.Index]" value="@item.Value" /></td>
        </tr>
        @{ Model.Index = Model.Index + 1 }
    }

最后接收如下行:

    [HttpPost]
    public ActionResult Edit(ItemViewModel[] items)
    {

    }
于 2012-09-04T06:47:40.817 回答