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