İşte benim denetleyici kodum,% 100 çalışıyor. Ancak, POST yöntemi AutoMapper kullanmıyor ve bu tamam değil. AutoMapper'ı bu eylem yönteminde nasıl kullanabilirim?Bir MVC3 uygulamasında Edit eylem yönteminde AutoMapper'ı kullanma
Veriye erişmek için Varlık Şablonu 4 ile Entity Framework 4 kullanıyorum.
public ActionResult Edit(int id)
{
Product product = _productRepository.FindProduct(id);
var model = Mapper.Map<Product, ProductModel>(product);
return View(model);
}
[HttpPost]
public ActionResult Edit(ProductModel model)
{
if (ModelState.IsValid)
{
Product product = _productRepository.FindProduct(model.ProductId);
product.Name = model.Name;
product.Description = model.Description;
product.UnitPrice = model.UnitPrice;
_productRepository.SaveChanges();
return RedirectToAction("Index");
}
return View(model);
}
AutoMapper kullanırsam, varlık çerçeve başvurusu kaybolur ve veriler veritabanında kalmaz.
[HttpPost]
public ActionResult Edit(ProductModel model)
{
if (ModelState.IsValid)
{
Product product = _productRepository.FindProduct(model.ProductId);
product = Mapper.Map<ProductModel, Product>(model);
_productRepository.SaveChanges();
return RedirectToAction("Index");
}
return View(model);
}
Bu yepyeni Ürün nesnesi dönen Mapper.Map işlevini neden olur ve bu nedenle, varlık çerçevesi grafiğe hiçbir referanslar tutuluyor tahmin ediyorum. Hangi alternatifleri öneriyorsunuz?
yapmak düşünüyorum yaşadığınız problemin ne olduğu açık. POST yönteminizin Automapper kullanmıyor olduğunu söylüyorsunuz, ancak '[HttpPost]' yönteminizde herhangi bir Automapper kodu göremiyorum. –
muhtemelen doğru şeyi geri göndermiyorsun? –
O, automapper Robert anlamına geldiğinden emin değil, "modelbinder" anlamına geldiğini düşünüyorum ama% 100 emin değilim –