我有一个显示所有付款的“网格”的视图,效果很好。
现在,我还想在商家列表中添加一个额外的下拉列表。
我应该怎么做?在我的PaymentViewModel中添加另一个字段以获得商家列表?创建两个模型?我是否可以仅为下拉列表创建局部视图并将其绑定到另一个模型?
我是MVC的新手,所以欢迎任何想法。
Payments.cshtml
@model IEnumerable<MVC.Web.Models.PaymentsViewModel>
PaymentsViewModel.cs
public int PaymentID { get; set; }
public string Merchant { get; set; }
答案 0 :(得分:2)
如果您想要整个视图的一个下拉列表,那么您不会将列表添加到PaymentsViewModel,因为这会为每个付款添加一个下拉列表。此视图模型也应该具有单数名称,因为每个名称代表一个项目:PaymentViewModel。
Payments.cshtml
@model PaymentsViewModel
@Html.DropDownFor(... Model.Merchants...)// select into ListItems
<table>...
foreach(PaymentViewModel payment in Model.Payments)
...your existing "grid"
PaymentViewModel.cs
public int PaymentID { get; set; }
public string Merchant { get; set; }
PaymentsViewModel.cs
List<MerchantsViewModel> Merchants {get;set;}
List<PaymentViewModel> Payments {get;set;}
我将如何解决这个问题取决于你在这个下拉列表中想要实现的目标。