public ViewResult Create() { //Инициализируем продукт; var editProduct = new EditProduct {Products = new Product(), CategorySubcategory = new ProductAndCategorySubcategory() }; var cat = from p in _repository.Categories select p; foreach (var op in cat) { editProduct.CategorySubcategory.Categories.Add(new SelectListItem() { Text = op.CategoryName, Value = op.CategoryId.ToString() }); } _productID = 0; return View("Edit", editProduct); }
//Редактирование товара public ViewResult Edit(int productId) { //Инициализируем Model для View //Получаем Product по Id var editProduct = new EditProduct { Products = _repository.Products .FirstOrDefault(p => p.ProductID == productId), CategorySubcategory = new ProductAndCategorySubcategory() }; //Локальные переменные для более коротких инициализаций далее string nameSubcategory = ReturnsNameOfTheSubcategoryNumber(editProduct.Products.SubcategoryId); int valueSubcategoryInt = editProduct.Products.SubcategoryId; int valueCategoryInt = editProduct.Products.CategoryId; //Инициализируем категория/подкатегория //Заносим список ВСЕХ категорий var cat = from p in _repository.Categories select p; foreach (var op in cat) { editProduct.CategorySubcategory.Categories .Add(new SelectListItem() { Text = op.CategoryName, Value = op.CategoryId.ToString() }); } //Заносим в Subcategories текущую продукта editProduct.CategorySubcategory.Subcategories .Add(new SelectListItem() { Text = nameSubcategory, Value = valueSubcategoryInt.ToString() }); //Заносим string id - номер категории, которая будет показана в drop листе //выделенной editProduct.CategorySubcategory.SelectedCategory = valueCategoryInt.ToString(); //подкатегория editProduct.CategorySubcategory.SelectedSubcategory = valueSubcategoryInt.ToString(); //Сохраняем номер модели _productID = productId; return View(editProduct); }
public ActionResult Edit(EditProduct product, HttpPostedFileBase imageForAdd) { if (ModelState.IsValid) { //Заносим категорию и подкатегорию - для нового/старого продукта product.Products.CategoryId = Convert.ToInt32(product.CategorySubcategory.SelectedCategory); product.Products.SubcategoryId = Convert.ToInt32(product.CategorySubcategory.SelectedSubcategory); //Новый Product if (_productID != 0) { product.Products.ProductID = _productID; // add a message to the viewbag TempData["message"] = string.Format("{0} был изменен!", product.Products.Name); } else { TempData["message"] = string.Format("{0} был создан!", product.Products.Name); } if (imageForAdd != null) { var pic = new Picture { PicBigMime = imageForAdd.ContentType, PicBig = new byte[imageForAdd.ContentLength] }; product.Products.Pictures = new List<Picture> {pic}; //product.Products.ImageMimeType = image.ContentType; //product.Products.ImageData = new byte[image.ContentLength]; //image.InputStream.Read(product.Products.ImageData, 0, image.ContentLength); } _repository.SaveProduct(product.Products); return RedirectToAction("Index"); } else { // Что-то делаем если модель дрянь return View(product); } }
[ValidateInput(false)] //Убирает валидацию (ругань на текст с тегами в description public ActionResult Edit(EditProduct product, IEnumerable<HttpPostedFileBase> imageForAdd) { if (ModelState.IsValid) { //Заносим категорию и подкатегорию - для нового/старого продукта product.Products.CategoryId = Convert.ToInt32(product.CategorySubcategory.SelectedCategory); product.Products.SubcategoryId = Convert.ToInt32(product.CategorySubcategory.SelectedSubcategory); //Новый Product if (_productID != 0) { product.Products.ProductID = _productID; // add a message to the viewbag TempData["message"] = string.Format("{0} был изменен!", product.Products.Name); } else { TempData["message"] = string.Format("{0} был создан!", product.Products.Name); } if (imageForAdd != null) { product.Products.Pictures = new List<Picture>(); foreach (var pc in imageForAdd) { var pic = new Picture { PicBigMime = pc.ContentType, PicBig = new byte[pc.ContentLength] }; pc.InputStream.Read(pic.PicBig, 0, pc.ContentLength); product.Products.Pictures.Add(pic); } //product.Products.ImageMimeType = image.ContentType; //product.Products.ImageData = new byte[image.ContentLength]; //image.InputStream.Read(product.Products.ImageData, 0, image.ContentLength); } _repository.SaveProduct(product.Products); string namesubcat = ReturnsNameOfTheSubcategoryNumber(product.Products.SubcategoryId); return RedirectToAction("List", new { subcategory = namesubcat, page = 1 }); } else { // Что-то делаем если модель дрянь return View(product); } }