2013-10-10 4 views
0

У меня есть представление, которое отображает «сетку» всех Платежей, которая отлично работает.ASP.NET MVC - отображение дополнительных данных в представлении

Теперь я хотел бы также добавить дополнительное раскрывающееся меню к этому представлению со списком продавцов.

Как мне это сделать? Добавить еще одно поле в моей платежной модели, чтобы иметь список продавцов? Создать две модели? Могу ли я создать частичное представление только для раскрывающегося списка и привязать его к другой модели?

Я новичок в MVC, поэтому любые мысли приветствуются.

Payments.cshtml

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

PaymentsViewModel.cs

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

Это зависит. Если вы намерены иметь оба значения, отправленные вместе как единую модель, и вы используете публикацию по умолчанию, тогда одна модель работает лучше всего. Если вы хотите публиковать сообщения с помощью javascript AJAX, вы можете передавать значения в виде нескольких параметров достаточно легко. В этом случае, однако, вы можете использовать '@ Html.DropDownListFor (x => x.Merchant ...);' во всем приложении без создания отдельных представлений. – ps2goat

ответ

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

Alot, как я бы об этом зависит от того, что вы пытаетесь достичь с этим выпадающим, хотя.

Смежные вопросы