我在CMS中有一個基本的CRUD,使用EF,它首先使用數據庫完成,而刪除功能只是刪除數據庫中的記錄。爲了安全起見改變mvc3中的c#delete功能
以下是刪除控制器代碼:
public ActionResult Delete(int id)
{
Database_Table database_table = db.Database_Table.Find(id);
return View(database_table);
}
[HttpPost, ActionName("Delete")]
public ActionResult DeleteConfirmed(int id)
{
Database_Table database_table = db.Database_Table.Find(id);
db.Database_Table.Remove(database_table);
db.SaveChanges();
return RedirectToAction("Index");
}
protected override void Dispose(bool disposing)
{
db.Dispose();
base.Dispose(disposing);
}
}
現在從客戶的視角點安全的原因,而不是真正從數據庫中刪除表中的條目,我只是想改變的值數據庫,即'已刪除',從'N'到'Y',然後我將其隱藏,然後通過自定義查詢不會顯示值爲'Y'的條目。如果這是有道理的。我的問題是如何改變這個代碼不刪除,但只是改變一個值。
我覺得它看起來是這樣的:
[HttpPost, ActionName("Delete")]
public ActionResult DeleteConfirmed(int id)
{
if (ModelState.IsValid)
{
Database_Name database_name = db.Database_Name.Find(id);
db.Entry(database_name).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(database_table);
}
但我不確定,其中約定義它只有一個值,該值將被修改,在這種情況下,「已刪除」值。也許還應該說它應該只返回到視圖的值爲'N'的條目
您是否正在使用實體框架進行數據訪問? – Liam
是的我首先使用實體框架,數據庫。 – Bohdi
我對EF有些生疏,我已經將它重新標記爲EF,但哪個可能會讓您獲得更好的結果。 – Liam