|
|
Опции темы | Опции просмотра |
07.07.2019, 21:12 | #1 (permalink) |
Новичок
Регистрация: 07.07.2019
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Добавить метод, который пополняет список одной модели экземплярами второй
в общем ситуация с одной стороны простая, с другой упираюсь в тупик. Задача такова: Есть 2 модели «Customer» и «Product», суть в том, что у кастомера есть лист типа продукт, и нужно пополнить этот лист моделями продукт. Что то типа корзины в интернет магазинах, ток примитивное. В чем проблема у меня: создал метод, в ГЕТ он вычисляет нужного пользователя из бд, вычисляет нужные продукты из бд. в ПОСТ методе обновляется бд и добавляются нужные продукты в список. Казалось бы все готово, но вечно упираюсь в представление(View), дело в том, что там можно использовать только одну модель, но метод работает с 2 моделями, и как создать представление, которое будет принимать 2 модели и отправлять их в ПОСТ я копаю уже 3и сутки. Ну а теперь код который у меня написан: Модель Кастомера public class Customer { public int Id { get; set; } public string Name { get; set; } public int NumberPhone { get; set; } public string Address { get; set; } public List<Product> CustomerProduct { get; set; } } Модель Продукта public class Product { public int Id { get; set; } public string NameProduct { get; set; } public string Description { get; set; } public int Price { get; set; } } Контекст БД public class CustomerContext : DbContext { public DbSet<Customer> Customers { get; set; } public DbSet<Product> ListProducts { get; set; } public CustomerContext(DbContextOptions<CustomerContext> options) :base(options) { Database.EnsureCreated(); } } и непосредственно сам метод [ActionName("Edit")] [HttpGet] public async Task<IActionResult> EditProductsCustom(int? id) { if (id != null) { Product product = await db.ListProducts.FirstOrDefaultAsync(p => p.Id == id); if (product != null) return View(product); } return NotFound(); } public async Task<IActionResult> Edit(int? id) { if (id != null) { Customer customer = await db.Customers.FirstOrDefaultAsync(p => p.Id == id); if (customer != null) return View(customer); } return NotFound(); } [HttpPost] public async Task<IActionResult> Edit(Customer customer, Product product) { customer.CustomerProduct.Add(product); db.Customers.Update(customer); await db.SaveChangesAsync(); return RedirectToAction("Index"); } Весь проект есть на гитхабе, вот ссылка если кому интересно github.com/Lucky63/TestOneStore Буду бесконечно признателен любой помощи! |
07.07.2019, 21:12 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Решение вашего вопроса должно упроститься после прочтения похожих топиков принтеры одной модели создают копии при установке Как добавить номер в черный список? как добавить скайп в список разрешенных программ? Как добавить сайт в список доверительных? |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|