سلام استاد .
چطوری میشه که گروه هایی که توی razor page به محصول اضافه کردید رو توی mvc درست کردو
من تا یه جاهایش رو روفتم ولی error null refrence گرفتم تو قسمت edit ولی add سالم کار کرد
[HttpGet]
public IActionResult Edit(int id)
{
var product = _context.Products.Include(p => p.Item)
.Where(p => p.Id == id)
.Select(s => new AddEditProductViewModel()
{
Id = s.Id,
Name = s.Name,
Description = s.Description,
QuantityInStock = s.Item.QuantityInStock,
Price = s.Item.Price,
Categories = _context.Categories.ToList(),
GoupsProduct = _context.CategoryToProducts.Where(c => c.ProductId == id)
.Select(s => s.CategoryId).ToList()
}).FirstOrDefault();
return View(product);
}
[HttpPost]
public IActionResult Edit(AddEditProductViewModel Product,)
{
Product.Categories = _context.Categories.ToList();
foreach (var gr in GoupsProduct)
{
Product.GoupsProduct.Add(gr);
}
if (!ModelState.IsValid)
{
return View(Product);
}
var product = _context.Products.Find(Product.Id);
var item = _context.Items.First(p => p.Id == product.ItemId);
product.Name = Product.Name;
product.Description = Product.Description;
item.Price = Product.Price;
item.QuantityInStock = Product.QuantityInStock;
_context.SaveChanges();
if (Product.Picture?.Length > 0)
{
string filePath = Path.Combine(Directory.GetCurrentDirectory(),
"wwwroot",
"images",
product.Id + Path.GetExtension(Product.Picture.FileName));
using (var stream = new FileStream(filePath, FileMode.Create))
{
Product.Picture.CopyTo(stream);
}
}
_context.CategoryToProducts.Where(c=>c.ProductId == Product.Id).ToList()
.ForEach(g=>_context.CategoryToProducts.Remove(g));
if (Product.SelectedGroups.Any() && Product.SelectedGroups.Count > 0)
{
foreach (var gr in Product.SelectedGroups)
{
_context.CategoryToProducts.Add(new CategoryToProduct()
{
CategoryId = gr,
ProductId = Product.Id
});
}
_context.SaveChanges();
}
return View("Index");
}
سلام
لیست بعنوان ورودی برای اکشن ارسال کنید
یعنی برای ورودی action list int بزارم
بله