0
我是.NET MVC(Learning)的新手。我在控制器下面的方法(这是不干净的代码和我学习)如何在实体框架中手动更新模型
[HttpPost]
public ActionResult Edit(ProductCategoryLocation viewModel)
{
if (ModelState.IsValid)
{
var product = viewModel.Product;
product.Category = db.Categories
.Where(c => c.ID == viewModel.CategoryID).Single();
db.Entry(product).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(viewModel);
}
视图模型拥有产品,位置和类别类型和类别ID和LocationID。在POST方法中,我从View Model中获取类别ID,更新产品的类别,然后将模型更新到数据库。除手动更改的类别外,对产品属性的任何更改都会保存。
有没有错误/我错过了什么? 这是使用View Model进行更新的正确方法吗?
感谢定义它。产品类已经有类别。我可以使用“Product.Category.ID = viewModel.CategotyID”来分配类别吗? – RAM
@RAM这是行不通的。您需要在'Product'类中指定'CategoryID'。 – Eranga
嗨Eranga ..谢谢我会测试这个。 – RAM