将ViewModel传递给ActionResult mvc4

时间:2014-03-05 21:11:02

标签: c# asp.net-mvc asp.net-mvc-4

我认为模型是IEnumerable。视图是在创建具有读写操作的新控制器时创建的mvc基本视图。 我不希望编辑操作会调用不同的视图,我想在索引视图中添加一个按钮,通过按下特定行中的按钮,按钮将使用"按下的模型调用操作结果#34;从那里逻辑将继续。

视图

@model IEnumerable<V1_ILotto.Areas.Admin.Models.WithdrawalModel>

@{
    ViewBag.Title = "בקשות משיכה";
}

<h2>בקשות משיכה</h2>

@using (Html.BeginForm("Approve", "Withdrawals", FormMethod.Post))
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true)

    <table>
        <tr>
            <th>
                @Html.DisplayNameFor(model => model.User)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.WithdrawalAmount)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Balance)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.IsApproved)
            </th>
            <th></th>
        </tr>

        @foreach (var item in Model)
        {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.User)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.WithdrawalAmount)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.Balance)
                </td>

                <td>
                    <p>
                        <input type="submit" value="Submit" />
                    </p>
                </td>

            </tr>
        }
    </table>
}

控制器

[HttpPost]
        public ActionResult Approve(WithdrawalModel withdrawalmodel)
        {
            if (ModelState.IsValid)
            {
                //logic for updating the db
                return RedirectToAction("Index");
            }
            return View(withdrawalmodel);
        }

注意:该视图不是获得单个模型,而是获得该模型的IEnumerable

1 个答案:

答案 0 :(得分:1)

仅限助手(显示除外)将数据绑定到模型。如果你想要传回数据,你需要将你的值至少隐藏为

@Html.HiddenFor(x => x.Balance)