Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NET MVC-在视图中显示其他数据_Asp.net Mvc_Asp.net Mvc Viewmodel - Fatal编程技术网

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

Asp.net mvc ASP.NET MVC-在视图中显示其他数据,asp.net-mvc,asp.net-mvc-viewmodel,Asp.net Mvc,Asp.net Mvc Viewmodel,我有一个视图,显示所有付款的“网格”,效果很好 现在,我还想在该视图中添加一个附加的下拉列表,其中包含商户列表 我该怎么做呢?在my PaymentViewModel中添加另一个字段以获得商户列表?创建两个模型?我可以为dropdownlist创建一个局部视图并将其绑定到另一个模型吗 我是MVC的新手,所以欢迎有任何想法 Payments.cshtml @model IEnumerable<MVC.Web.Models.PaymentsViewModel> 如果您希望整个视图有一个

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

现在,我还想在该视图中添加一个附加的下拉列表,其中包含商户列表

我该怎么做呢?在my PaymentViewModel中添加另一个字段以获得商户列表?创建两个模型?我可以为dropdownlist创建一个局部视图并将其绑定到另一个模型吗

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

Payments.cshtml

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

如果您希望整个视图有一个下拉列表,那么您不会将列表添加到PaymentsViewModel,因为这将为每个付款添加一个下拉列表。此外,此viewmodel应该有一个单数名称,因为每个都代表一个项目:PaymentViewModel

Payments.cshtml

@model PaymentsViewModel

@Html.DropDownFor(... Model.Merchants...)// select into ListItems

<table>...
foreach(PaymentViewModel payment in Model.Payments)
    ...your existing "grid"
PaymentsViewModel.cs

public int PaymentID { get; set; }
public string Merchant { get; set; }
List<MerchantsViewModel> Merchants {get;set;}
List<PaymentViewModel> Payments {get;set;}
列出商户{get;set;}
列出付款{get;set;}

我将如何进行这项工作,很大程度上取决于您使用此下拉列表试图实现的目标。

这取决于您。如果您打算将这两个值作为单个模型重新发布在一起,并且使用默认的发布方式,那么单个模型效果最好。如果您想使用javascript AJAX调用发布,那么可以很容易地将值作为多个参数传入。不过,在本例中,您可以使用
@Html.DropDownListFor(x=>x.Merchant…)贯穿整个应用程序,而不创建单独的视图。
List<MerchantsViewModel> Merchants {get;set;}
List<PaymentViewModel> Payments {get;set;}