Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Изготовление сайтов


Ответ
 
Опции темы Опции просмотра
Старый 07.07.2019, 21:12   #1 (permalink)
Lucky63
Новичок
 
Регистрация: 07.07.2019
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Добавить метод, который пополняет список одной модели экземплярами второй

Приветствую вас дорогие форумчане, не хотел я создавать этой темы, но уже нет ни сил, ни нервов. 3-и сутки сижу...
в общем ситуация с одной стороны простая, с другой упираюсь в тупик.
Задача такова: Есть 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
Буду бесконечно признателен любой помощи!
Lucky63 вне форума   Ответить с цитированием

Старый 07.07.2019, 21:12
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Решение вашего вопроса должно упроститься после прочтения похожих топиков

принтеры одной модели создают копии при установке
Как добавить номер в черный список?
как добавить скайп в список разрешенных программ?
Как добавить сайт в список доверительных?

Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 04:19.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.