ASP.NET MVC - 在视图中显示其他数据

时间:2013-10-10 22:33:01

标签: asp.net-mvc asp.net-mvc-viewmodel

我有一个显示所有付款的“网格”的视图,效果很好。

现在,我还想在商家列表中添加一个额外的下拉列表。

我应该怎么做?在我的PaymentViewModel中添加另一个字段以获得商家列表?创建两个模型?我是否可以仅为下拉列表创建局部视图并将其绑定到另一个模型?

我是MVC的新手,所以欢迎任何想法。

Payments.cshtml

@model IEnumerable<MVC.Web.Models.PaymentsViewModel>

PaymentsViewModel.cs

public int PaymentID { get; set; }
public string Merchant { get; set; }

1 个答案:

答案 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;}

我将如何解决这个问题取决于你在这个下拉列表中想要实现的目标。