[英]Delete Method in MVC 5 using Repository
對不起,我是ASP.NET的新手之一,我正在努力解決為什么我的刪除方法不起作用。
他的方法是:
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(Domain domain)
{
var rep = new Repository<Site>();
var siteRecordFromDomainObject = _mapper.Map<Site>(domain);
rep.Delete(siteRecordFromDomainObject);
return View(domain);
}
這是來自存儲庫的代碼:
public void Delete(TObject t)
{
_context.Set<TObject>().Remove(t);
_context.SaveChanges();
}
有人能告訴我為什么我收到此錯誤:
無法刪除該對象,因為在ObjectStateManager中找不到該對象。
對象需要已加載或附加到上下文才能刪除它。
使用標識符對對象的上下文執行搜索/查找。 找到對象后,可以將其從上下文中刪除。
鑒於所涉及的模型的結構在此答案時尚不清楚,這里是一個如何完成刪除的示例。
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(Domain domain) {
var rep = new Repository<Site>();
//Assuming Repository has some means of retrieving entities,
//get the site from repository using a common identifier
var siteRecord = rep.FirstOrDefault(s => s.id == domain.id);
if(siteRecord !=null) {
//if a record is found, remove it from repository
rep.Delete(siteRecord);
}
return View(domain);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.