mvc中httpPost的用法
public ActionResult Delete(int id)
{
Movie mv = db.Movies.Find(id);
if (mv == null)
return RedirectToAction("Index");
return View(mv);
}
[HttpPost]
public ActionResult Delete(Movie mm)
{
try
{
var movie = db.Movies.Find(mm.ID);
db.Movies.Remove(movie);
db.SaveChanges();
return RedirectToAction("Index");
}
catch (Exception)
{
ModelState.AddModelError("","删除失败");
}
return View(mm);
}
两个删除的方法,第一个没有[HttpPost]标记的Delete方法并不会将数据删除,因为如果通过GET请求而删除(或者追加、修改)删除数据的话都会打开一个安全漏洞。
第二次加载时执行的是第二个方法,这时数据才真正删除,HttpPost目的就是加载时第2次,第3次,第n次执行的方法
还有一个就是[httpGet] 是第一次加载的时候指定调用的