У меня возникла проблема с созданием соответствующего ViewModel, чтобы разрешить пользователю выбирать несколько билетов сразу в представлении.Использование ViewModels и Partial View с asp.net mvc
У меня есть модель по продаже билетов
public class Ticket
{
public int TicketID { get; set; }
[Required]
[ForeignKey("Event")]
//foreign key
public int EventID { get; set; }
[Required]
public string Description { get; set; }
[Required]
public float Price { get; set; }
//navigation property
public virtual Event Event { get; set; }
}
Ордер Модель
public class Order
{
public int OrderID { get; set; }
//foreign key
[Required]
[ForeignKey("Event")]
public int EventID { get; set; }
[Required]
public DateTime OrderDate { get; set; }
[Required]
public float OrderTotal { get; set; }
public ApplicationUser user { get; set; }
public virtual Event Event { get; set; }
}
Тогда у меня есть модель Детали_Заказов
public class OrderDetails
{
[Required]
public int OrderDetailsID { get; set; }
[Required]
//Foreign key
[ForeignKey("Order")]
public int OrderID { get; set; }
[Required]
//Foreign key
[ForeignKey("Ticket")]
public int TicketID { get; set; }
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
public string email { get; set; }
[Required]
[DataType(DataType.PhoneNumber)]
public int PhoneNumber { get; set; }
//navigation properties
public virtual Order Order { get; set; }
public virtual Ticket Ticket { get; set; }
}
Я также создал дополнительную модель TicketsOrdered как я не» t знаю, где еще я могу сохранить количество каждого типа билета, выбранного пользователем
public class TicketsOrdered
{
public int OrderID;
public int TicketID;
public int Quantity;
}
Я хочу создать представление, которое будет отображать Описание билетов и стоимость каждого билет, относящийся к определенному событию, то там также будет выпадающее/текстовым полем, чтобы разрешить пользователям вводить количество каждого билета они требуют , Затем я хочу сохранить TicketID, OrderID и количество в таблице TicketsOrdered db. Проблема, с которой я сталкиваюсь, заключается в том, что все данные относятся ко многим моделям, и я не знаю, как собрать все это вместе. Я получаю полную потерю от того, как это сделать, примером того, как я хочу, это посмотреть, когда вы нажимаете на билеты на EventBrite. Любая помощь в ViewModel, которая будет работать или как использовать мои текущие модели в представлении, была бы действительно полезной.
EDIT Модель событий
public class Event
{
public int EventID { get; set; }
[Required]
public String Name { get; set; }
[Required]
public String Location { get; set; }
[Required]
[DataType(DataType.Date)]
public DateTime Date { get; set; }
[Required]
[DataType(DataType.MultilineText)]
public String Description { get; set; }
[Required]
[Display(Name = "Total Tickets Available")]
public int TicketsAvailable { get; set; }
//navigation property
public virtual IEnumerable<Order> Order { get; set; }
//navigation property
public virtual IEnumerable<Ticket> Tickets { get; set; }
}
Вы утверждаете _for каждого билета, относящийся к конкретному Event_, но ваши модели показывают, у вас есть только один билет на мероприятие, а не сбор билетов. Какова ваша модель «Событие»? Он содержит свойство 'IEnumerable'? –
Да У меня есть модель события, содержащая IEnumerable @StephenMuecke.Какую модель мне нужно изменить, чтобы показать, что каждое событие может иметь несколько билетов? Спасибо –
CatherineG
Его еще немного неясно, каковы ваши отношения. У каждого «события» также есть коллекция разных типов «Ticket»? И идея состоит в том, что вы хотите создать «Order» для «Event», который отображает все доступные типы билетов для этого «Event» и позволяет пользователю вводить количество для каждого (например, они хотят, чтобы 2 стандартных билета и 2 класса Билеты)? –