• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Добавить метод, который пополняет список одной модели экземплярами второй

  • Автор темы Автор темы Lucky63
  • Дата начала Дата начала

Lucky63

Ученик
Регистрация
7 Июл 2019
Сообщения
1
Реакции
0
Баллы
0
Добавить метод, который пополняет список одной модели экземплярами второй

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