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

你可能感兴趣的:(http)