mvc中HttpPost理解

        
        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标记的方法,在提交表单的时候才会进去)

原文地址:https://www.cnblogs.com/rookie-26/p/4662048.html