MVC中CRUD

今天看见页面操作中方法重载,里面提到过一点,Action处理的思路是:“从哪来回到哪里去”。

看下面代码截图

 1         public ActionResult Delete(int id)
 2         {
 3             ViewData.Model = dbContext.ClassInfos.Find(id);
 4             return View();
 5         }
 6
 7         [HttpPost]
 8         public ActionResult Delete(int id, FormCollection collection)
 9         {
10            //删除数据
11             ClassInfos classInfos=new ClassInfos();
12             classInfos.ClassInfoName = string.Empty;
13             classInfos.Id = id;
14             dbContext.ClassInfos.Attach(classInfos);
15             dbContext.Entry(classInfos).State=EntityState.Deleted;
16             dbContext.SaveChanges();
17
18             return RedirectToAction("Index");
19         }

然后对应的view页面

 1 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MvcModel.ClassInfos>" %>
 2
 3 <!DOCTYPE html>
 4
 5 <html>
 6 <head runat="server">
 7     <meta name="viewport" content="width=device-width" />
 8     <title>Delete</title>
 9 </head>
10 <body>
11     <h3>Are you sure you want to delete this?</h3>
12     <fieldset>
13         <legend>ClassInfos</legend>
14
15         <div class="display-label">
16             <%: Html.DisplayNameFor(model => model.ClassInfoName) %>
17         </div>
18         <div class="display-field">
19             <%: Html.DisplayFor(model => model.ClassInfoName) %>
20         </div>
21     </fieldset>
22     <% using (Html.BeginForm()) { %>
23         <p>
24             <input type="submit" value="Delete" /> |
25             <%: Html.ActionLink("Back to List", "Index") %>
26         </p>
27     <% } %>
28
29 </body>
30 </html>

其中主界面如下:即实现删除一行数据的功能,点击Delete,然后跳转对应的方法,实现删除功能。

点击Delete后弹出下面界面

通过审查网页元素和网页源代码对比(左边为源代码,右边为审查元素代码)

有没有发现,虽然左边的<% using(html.BeginForm()){...}%>没有将action写明,但是生成的网页中会自动填充action为 右边图中的 action="/ClassInfo/Delete/0" method="post"

默认情况下,form都已post方式提交请求。

这样就实现了“从哪里来回到哪里去”的思想

解释:点击删除提交的方法(Action)是 Delete(int id) 对应的代码url为:http://localhost:1794/Classinfos/Delete/0

页面跳转到 删除界面,即需要点击删除按钮“delete”时,提交的action同样为Delete方法,不过已Post提交,Controller中实现的方法为Delete(int id,FormCollection collection)方法,

Url为 “/ClassInfos/Delete/0” 。

上面知识个人的一点小见解,功能实现的一点心得,或许没能理解其中的原理,但是对于初学者来说,明白转化过程还是十分重要的。

时间: 2024-11-14 12:41:01

MVC中CRUD的相关文章

《Entity Framework 6 Recipes》中文翻译系列 (20) -----第四章 ASP.NET MVC中使用实体框架之在MVC中构建一个CRUD示例

翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第四章  ASP.NET MVC中使用实体框架 ASP.NET是一个免费的Web框架,它支持3种不同的技术来创建websites(网站)和Web应用:他们分别是,Web Pages,Web Forms,和MVC.虽然MVC是一种非常流行的,有完整的用于软件开发模式理论的技术,但它在ASP.NET中却是一种新的技术. 目前最新的版本是2012年发布的ASP.NET MVC4.自从2008年发布

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中基本的增删查改,这篇文章,我会继续说到,使用仓储模式,进行增删查改. 什么是仓储模式呢,我们先来了解一下:  仓储模式是为了在程序的数据访问层和业务逻辑层之间创建一个抽象层,它是一种数据访问模式,提供了一种更松散耦合的数据访问方法.我们把创建数据访问的逻辑代码写在单独的类中,或者类库中

MVC3和MVC4中CRUD操作

MVC3中EF实现的CRUD操作 public class HomeController : Controller { // // GET: /Home/ CarModelContainer db = new CarModelContainer(); #region 查询所有 +Index() public ActionResult Index() { List<CarModel> list = (from c in db.CarModel select c).ToList(); //View

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

5.在MVC中使用泛型仓储模式和工作单元来进行增删查改

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

细说MVC中仓储模式的应用

文章提纲 概述要点 理论基础 详细步骤 总结 概述要点 设计模式的产生,就是在对开发过程进行不断的抽象. 我们先看一下之前访问数据的典型过程. 在Controller中定义一个Context, 例如: private AccountContext db = new AccountContext(); 在Action中访问,例如获取用户列表: var users=db.SysUsers; 类似于这种,耦合性太高.业务逻辑直接访问数据存储层会导致一些问题,如 重复代码:不容易集中使用数据相关策略,例

ASP.NET MVC中为DropDownListFor设置选中项的方法

在MVC中,当涉及到强类型编辑页,如果有select元素,需要根据当前Model的某个属性值,让Select的某项选中.本篇只整理思路,不涉及完整代码. □ 思路 往前台视图传的类型是List<SelectListItem>,把SelectListItem选中项的Selected属性设置为true,再把该类型对象实例放到ViewBag,ViewData或Model中传递给前台视图. 通过遍历List<SelectListItem>类型对象实例 □ 控制器 ? 1 2 3 4 5 6

MVC中处理Json和JS中处理Json对象

事实上,MVC中已经很好的封装了Json,让我们很方便的进行操作,而不像JS中那么复杂了. MVC中: public JsonResult Test() { JsonResult json = new JsonResult { Data = new { Name = "zzl", Sex = "male", } }; return Json(json); }   public JsonResult TestList() { List<User> user

log4net 使用总结- (2)在ASP.NET MVC 中使用

log4net在ASP.NET MVC中的配置,还有一种配置方式,即不在web.config中,而是单独新建一个log4net.config 在根目录下 第一.引用log4net.dll 第二.在站点根目录下增加log4net.config <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="