Par*_*osh 1 asp.net-mvc asp.net-mvc-4 asp.net-mvc-5
我正在使用MVC 5,并有一个页面,我将列出合同的付款.有时候没有与合同相关的付款.我的视图带来了列出的模型:
@model List<MyProject.Models.PaymentViewModel>
Run Code Online (Sandbox Code Playgroud)
付款视图上的操作方法如下所示:
[HttpGet]
public ActionResult Payment(int id)
{
var payments = contractController.GetPaymentsForActiveContract(id);
return View(payments);
}
Run Code Online (Sandbox Code Playgroud)
现在GetPaymentsForActiveContract返回一个List,这在我使用时工作正常
@Html.Partial("partialviews/_Payments")
Run Code Online (Sandbox Code Playgroud)
在我看来.但是我现在要做的是调用另一个动作方法,它将返回一个显示付款表的视图,或者如果没有付款就会返回另一个没有付款的操作方法.
我将该行动定义为:
public ActionResult GetPayments(List<PaymentViewModel> payments)
{
if (payments.Count > 0)
{
return PartialView("partialviews/_Payments", payments);
}
return PartialView("partialviews/_NoPayments");
}
Run Code Online (Sandbox Code Playgroud)
我不确定如何从我的视图中将模型传递给此Action.我正在查看@Html方法,但似乎找不到任何允许我调用GetPayments方法传递模型并让它返回Partial View的东西.
小智 7
如果要从视图中调用控制器操作,则可以使用
@Html.Action()
Run Code Online (Sandbox Code Playgroud)
方法和通过付款清单作为路线值
@{
var paymentsList = new List<PaymentViewModel> {new PaymentViewModel(), new PaymentViewModel()};
}
@Html.Action("GetPayments", new { payments = paymentsList })
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10604 次 |
| 最近记录: |