public ActionResult Delete(int id) { Book book = db.Book.Find(id); if (book == null) { //重定向到行动(跳转到index) return RedirectToAction("Index"); } else { return View(book); } } [HttpPost] public ActionResult Delete(int id, FormCollection collection) { Book book = db.Book.Find(id); db.Book.Remove(book); db.SaveChanges(); return RedirectToAction("Index"); }
两个删除的方法,第一个没有[HttpPost]标记的Delete方法并不会将数据删除,因为如果通过GET请求而删除(或者追加、修改)删除数据的话都会打开一个安全漏洞。
第二次加载时执行的是第二个方法,这时数据才真正删除,HttpPost目的就是加载时第2次,第3次,第n次执行的方法
还有一个就是[httpGet] 是第一次加载的时候指定调用的
(相当于告诉浏览器我在第一次访问的时候不会进HttpPost标记的方法,在提交表单的时候才会进去)
时间: 2024-11-09 04:37:07