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

时间: 2024-11-09 04:37:07

mvc中HttpPost理解的相关文章

理解ASP.NET MVC中的ModelBinder

模型绑定的本质 任何控制器方法的执行都受action invoker组件(下文用invoker代替)控制.对于每个Action方法的参数,这个invoker组件都会获取一个Model Binder Object(模型绑定器对象).Model Binder的职责包括为Action方法参数寻找一个可能的值(从HTTP请求上下文).每个参数都可以绑定到不同的Model Binder:但是大部分情况我们都使用的是默认模型绑定器-DefaultModelBinder(如果我们没有显式设置使用自定义的Mod

理解ASP.NET MVC中的ActionResult

通常我们在一个ASP.NET MVC项目中创建一个Controller的时候,Index()方法默认的返回类型都是ActionResult,通过查看UML图,ActionResult实际上是一个抽象类,因此实际返回的类型是该抽象类的子类. Ø ActionResult及其子类的UML图   有关ActionResult及其子类的UML图如下所示: 由于图片比较大,所以在浏览器中看起来可能比较小,也不太方便,大家可以点击这里下载大图,使用专业的图片浏览器打开来看. 下载大图 Ø ActionRes

AspNet MVC中各种上下文理解

0  前言 AspNet MVC中比较重要的上下文,有如下: 核心的上下文有HttpContext(请求上下文),ControllerContext(控制器上下文) 过滤器有关有五个的上下文ActionExecutingContext,ActionExecutedContext,ResultExecutingContext,ResultExecutedContext,ExceptionContext 视图相关的上下文ViewContext 这些上下文之间的关系如下图所示 说明: 1.Contro

Asp.net MVC中Route的理解

在Asp.net MVC中,对于一个请求,是通过路由找到对应的Controller类中的对应Action,并与model进行交互,最后返回到view. 就是说Asp.net MVC是用Route来定义各种URL到实际处理程序之间的映射的. 在处理请求之前,在Global.asax.cs文件的Application_Start中注册路由 public class MvcApplication : System.Web.HttpApplication { protected void Applica

理解struts 在mvc中的角色

一.引入struts包 二.在WEB-INF目录下编写简单的login.jsp页面(V层); <form action="/Strutstest/login.do" method="post"> U:<input type="text" name="username"/><br/> P:<input type="password" name="passwo

ASP.NET MVC中的控制器激活与反射之间的联系(帮助理解)

ASP.NET Mvc是ASP.NET的一个框架,同样也是基于管道的设计结构.HttpModule和HttpHandler是ASP.NET的两个重要组件,同样的在Mvc中也是非常重要的组件.在应用程序中的管道设计结构下实际上是由一系列的事件组合在一起的.这些事件可以有HttpModule来订阅,订阅的时机是在应用程序加载配置文件的时候,订阅web.config中httomodules配置的相关事件.而HttpHandler的作用就是最终的真正执行. 激活前准备首先要说的是路由系统一个Web应用程

4.CRUD Operations Using the Repository Pattern in MVC【在MVC中使用仓储模式进行增删查改】

原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 上一篇文章,讲到了MVC中基本的增删查改,这篇文章,我会继续说到,使用仓储模式,进行增删查改. 什么是仓储模式呢,我们先来了解一下:  仓储模式是为了在程序的数据访问层和业务逻辑层之间创建一个抽象层,它是一种数据访问模式,提供了一种更松散耦合的数据访问方法.我们把创建数据访问的逻辑代码写在单独的类中,或者类库中

6.在MVC中使用泛型仓储模式和依赖注入实现增删查改

原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pattern-and-dep/ 系列目录: Relationship in Entity Framework Using Code First Approach With Fluent API[[使用EF Code-First方式和Fluent API来探讨EF中的关系]] Code First Mig

Mvc中ViewBag、ViewData、TempData如何使用

对于我初学者来说,Mvc有很多都是我所迷惑的,也是我了解后所痴迷的.废话不多说,来谈谈我今天对Mvc这几个常用的对象的理解吧,这里面只简明概要叙述 ViewBag 获取动态视图数据字典 作用:给视图传递数据,不需要转换类型,由系统动态解析,比ViewData执行性能要差 ViewData   获取或设置视图数据的字典         给视图传递数据,需要转换成相应的类型,编写没有ViewBag方便,可读性强 TempData     临时数据的字典   给控制器或视图传递数据,需要和ViewDa