【问题标题】:mvc passing model to action methodmvc 将模型传递给操作方法
【发布时间】:2014-07-04 04:40:04
【问题描述】:

我正在使用 MVC 5,并且有一个页面,我将在其中列出合同的付款。有时没有与合同相关的付款。我的视图将模型引入列表:

@model List<MyProject.Models.PaymentViewModel>

支付视图上的操作方法如下所示:

        [HttpGet]
    public ActionResult Payment(int id)
    {
        var payments = contractController.GetPaymentsForActiveContract(id);

        return View(payments);
    }

现在 GetPaymentsForActiveContract 返回一个列表,当我使用时它工作正常

@Html.Partial("partialviews/_Payments")

在我看来。但是我现在要做的是调用另一个操作方法,该方法将返回一个显示付款表的视图,或者如果不存在付款,则另一个将写出没有付款的视图。

我将该操作定义为:

        public ActionResult GetPayments(List<PaymentViewModel> payments)
    {
        if (payments.Count > 0)
        {
            return PartialView("partialviews/_Payments", payments);
        }
        return PartialView("partialviews/_NoPayments");
    }

从我的角度来看,我不确定如何将模型传递到此操作中。我正在查看 @Html 方法,但似乎找不到任何可以让我调用传入模型的 GetPayments 方法并让它返回任一部分视图的方法。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-5


    【解决方案1】:

    如果你想从视图中调用控制器动作,你可以使用

    @Html.Action() 
    

    方法并通过支付列表作为路径值

    @{
        var paymentsList = new List<PaymentViewModel> {new PaymentViewModel(), new PaymentViewModel()};
    }
    
    @Html.Action("GetPayments", new { payments = paymentsList })
    

    【讨论】:

    • 我刚刚开始工作,我也能够使用 @Html.Action("GetPayments", new { payment = Model}) 在视图中传递它
    猜你喜欢
    • 2018-12-27
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 2011-04-03
    • 2019-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多