我做了一个更新Controller
来更新属性并将其保存在数据库中。当我保存isSelected
为真时,点击false
按钮后结果为Refresh
。我不知道我的代码发生了什么。
public ActionResult UpdateSub([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<SubCateViewModel> list)
{
if (list != null && ModelState.IsValid)
{
foreach (var SubCate in list)
{
var categoriToUpdate = dbContext.ProductSubcategories.First(p => p.ProductSubcategoryID == SubCate.ProductSubcategoryID);
TryUpdateModel(categoriToUpdate); //maybe the problem ???
dbContext.SaveChanges();
}
}
return Json(new[] { list }.ToDataSourceResult(request));
}
对我的代码有任何建议。感谢您的时间!
答案 0 :(得分:1)
您没有像这样更新实体记录。以下是使用EF
更新记录的正确方法//get the record first
var category= dbContext.ProductSubcategories.where(p => p.ProductSubcategoryID == SubCate.ProductSubcategoryID).SingleOrDefault();
//update the catgory
category.isSelected=true;
category.Name="New Name for example";
//Mark catgory obejct as modified
dbContext.Entry(category).State = EntityState.Modified;
//Save whole entity graph to the database
dbContext.SaveChanges();