2013-10-27 3 views
0

У меня есть модель, и в этой модели у меня есть 2 перечислимых элемента другой модели. Как так:Модель MVC с перечислимой моделью в таблице

public class InvoiceModel 
{ 
    public int? InvoiceId { get; set; } 
    public IEnumerable<ItemModel> Items { get; set; } 
    public IEnumerable<ItemModel> AvailableItems { get; set;) 
    public decimal? SubTotal { get; set; } 
    public decimal? Discounts { get; set; } 
    public decimal? Taxes { get; set; } 
    public decimal? Total { get; set; } 
} 

ItemModel выглядит так:

public class ItemModel 
{ 
    public int? Id { get; set; } 
    public decimal? Amount { get; set; } 
    public string Name { get; set; } 
    public string Description { get; set; } 
    public decimal? UnitCost { get; set; } 
    public int? Quantity { get; set; } 
} 

Теперь в представлении, пользователь создает фактуру, добавив модель Элемента (элементы) для выставления счета на основе AvailableItems в представлении это выглядит как таблица.

Итак, у нас есть таблица, в которой каждая строка представляет элементы, добавленные в счет-фактуру. Последняя строка имеет выпадающий список для выбора, заполненный функцией AvailableItems, чтобы динамически добавлять элемент, который они выбирают, из раскрывающегося списка в нижней части таблицы непосредственно перед последней строкой, в которой есть выбор для нового элемента. Он также добавляет элементы в свойство Items модели. Кроме того, я не знаю, как добиться этого или где даже начать спрашивать.

У меня есть макет из того, что таблица должна выглядеть следующим образом: enter image description here

Любая помощь будет принята с благодарностью!

ответ

1

На стороне Модели, вы собираетесь нужно что-то вроде этого на ItemModel:

public int? InvoiceId { get; set; } 
public int? AvailableInvoiceId { get; set; } 

Или вы будете иметь проблемы отображения, так как IEnumerable не будет знать, как сделать ссылку на ItemModel.

Однако, если честно, я думаю, несколько дизайн запахами закрались:

1) Список AvailableItems любопытная вещь, чтобы прикрепить к счету-фактуре, ты уверен, что это не должно быть отдельный стол/модель? InvoiceId/AvailableInvoiceId действительно должны быть обязательными полями, что невозможно, если вы попытаетесь наложить две вещи в одну и ту же таблицу.

2) Первичные ключи не должны быть обнуляемыми!

3) Я вообще видел навигационные свойства, реализованные как ICollection <> а не IEnumerable <> - у вас могут быть проблемы с этим.

Понятно, если это всего лишь макет, конечно.

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