MVC Controller操作 CRUD

2011-12-20 22:40 1824人阅读 评论(0) 收藏 举报
 分类: asp.net MVC(6)
版权声明:本文为博主原创文章,未经博主允许不得转载。

Controller操作
主要简单备忘增、删、查、改的Controller一般操作方法,操作对象为Students实体、context为上下文连接
students对象包括name,age,sex信息,操作页面都是在MVC3中使用强类型、Razor模版建立的。
1、定义查询Index
[csharp] view plain copy
public ActionResult Index()
{
   var list = context.Students.ToList(); // 获取students对象信息
   return View(list); // 返回list数据给Index界面
 }  

2、  定义添加Controller
    // GET: /Student/Create
 // 用于显示添加界面
[csharp] view plain copy
public ActionResult Create()
{
 return View(); // 默认视图页面为Crete.cshtml
}   

   定义添加操作Action
  [HttpPost] // 必须跟上表示Post请求执行submit按钮提交
[csharp] view plain copy
public ActionResult Create(Student student)
        {
            try
            {
                // TODO: Add insert logic here
                if (ModelState.IsValid)
                {                 

                    context.Students.Add(student); // 附加对象student  

                    context.SaveChanges(); // 执行持久化操作  

                    return RedirectToAction("Index"); // 返回到Index页面
                }  

            }
            catch
            {
               // 异常信息  

            }
            return View(student);
        }  

3、定义修改Controller
 // 获取要修改的页面信息 默认页面为Edit.cshtml
[csharp] view plain copy
public ActionResult Edit(int id)
{
   var model = context.Students.Find(id); // 根据ID查询获取修改信息
    return View(model); // 并赋值给View页面
}  

 // 执行编辑操作
[csharp] view plain copy
[HttpPost]
       public ActionResult Edit(Student  student)
       {  

               // TODO: Add update logic here  

               if (ModelState.IsValid)
               {
       // 会自动识别哪个属性被修改
                   context.Entry(student).State = EntityState.Modified; // 标志为修改状态Modifyed,表示要修改,Detached、Added、Unchanged、Modifyed、Deleted
                   int i = context.SaveChanges();
                   return RedirectToAction("Index"); // 修改成功返回首页
               }
           return View(student);
       }  

4、定义删除Controller

[csharp] view plain copy
// 获取要删除的信息 默认页面为delete.cshtml
    public ActionResult Delete(int id)
       {
           var model = context.Students.Find(id);
           return View(model);
       }
 // 执行操作方法
    [ActionName("Delete")] // 这里被定义了两个一样的Delete,所以需要用ActionName特性指定个Delete的Action
       [HttpPost]
       public ActionResult DeletePost(int id) // 定义成DeletePost,否则提示错误
       {
           try
           {
               // TODO: Add delete logic here  

               var student = context.Students.Find(id);  

               context.Students.Remove(student); // 移除操作
               // 变成Deleted状态
               context.SaveChanges(); // 持久化
               return RedirectToAction("Index");
           }
           catch
           {
               return View();
           }
       }  

 利用Ajax删除,先修改Controller代码:
  try
           {
               // TODO: Add delete logic here
               if (Request.IsAjaxRequest())
               {
                   var student = context.Students.Find(id);
                   context.Students.Remove(student);
                   int k = context.SaveChanges();
                   return Content(k.ToString());
               }
               else
               {
                   return Content("-1"); // 返回内容为-1 表示删除失败
               }
           }
           catch
           {
               return Content("-1");
           }  

   修改查询的页面中删除的链接、
   把原来的 @Html.ActionLink("删除", "Delete", new { id=item.StudentID })
   换成

[csharp] view plain copy
<a href="#" name="delete" [email protected]>删除</a>
  用jquery删除
  <script type="text/javascript">
$().ready(function () {
      $("[name=‘delete‘]").click(function () {
          if (confirm("确定删除信息?")) {
              var sid = $(this).attr("sid");  

              var trContent = $(this).parent().parent();
              $.post("Student/Delete/", { id: sid }, function (data) {
    if (data == "-1") {
     alert("删除失败");
    }
    else {
     $(trContent).remove();
     alert("删除成功");
    }  

   })
  }
 })
})
</script>  

 在学习的过程中主要记录下asp.NET MVC 的基本CRUD操作

  

2011-12-20 22:40 1824人阅读 评论(0) 收藏 举报

 分类:

asp.net MVC(6) 

版权声明:本文为博主原创文章,未经博主允许不得转载。

Controller操作
主要简单备忘增、删、查、改的Controller一般操作方法,操作对象为Students实体、context为上下文连接
students对象包括name,age,sex信息,操作页面都是在MVC3中使用强类型、Razor模版建立的。
1、定义查询Index

[csharp] view plain copy

  1. public ActionResult Index()
  2. {
  3. var list = context.Students.ToList(); // 获取students对象信息
  4. return View(list); // 返回list数据给Index界面
  5. }

2、  定义添加Controller
    // GET: /Student/Create
 // 用于显示添加界面

[csharp] view plain copy

  1. public ActionResult Create()
  2. {
  3. return View(); // 默认视图页面为Crete.cshtml
  4. }

定义添加操作Action
  [HttpPost] // 必须跟上表示Post请求执行submit按钮提交

[csharp] view plain copy

  1. public ActionResult Create(Student student)
  2. {
  3. try
  4. {
  5. // TODO: Add insert logic here
  6. if (ModelState.IsValid)
  7. {
  8. context.Students.Add(student); // 附加对象student
  9. context.SaveChanges(); // 执行持久化操作
  10. return RedirectToAction("Index"); // 返回到Index页面
  11. }
  12. }
  13. catch
  14. {
  15. // 异常信息
  16. }
  17. return View(student);
  18. }

3、定义修改Controller
 // 获取要修改的页面信息 默认页面为Edit.cshtml

[csharp] view plain copy

  1. public ActionResult Edit(int id)
  2. {
  3. var model = context.Students.Find(id); // 根据ID查询获取修改信息
  4. return View(model); // 并赋值给View页面
  5. }

// 执行编辑操作

[csharp] view plain copy

  1. [HttpPost]
  2. public ActionResult Edit(Student  student)
  3. {
  4. // TODO: Add update logic here
  5. if (ModelState.IsValid)
  6. {
  7. // 会自动识别哪个属性被修改
  8. context.Entry(student).State = EntityState.Modified; // 标志为修改状态Modifyed,表示要修改,Detached、Added、Unchanged、Modifyed、Deleted
  9. int i = context.SaveChanges();
  10. return RedirectToAction("Index"); // 修改成功返回首页
  11. }
  12. return View(student);
  13. }

4、定义删除Controller

[csharp] view plain copy

  1. // 获取要删除的信息 默认页面为delete.cshtml
  2. public ActionResult Delete(int id)
  3. {
  4. var model = context.Students.Find(id);
  5. return View(model);
  6. }
  7. // 执行操作方法
  8. [ActionName("Delete")] // 这里被定义了两个一样的Delete,所以需要用ActionName特性指定个Delete的Action
  9. [HttpPost]
  10. public ActionResult DeletePost(int id) // 定义成DeletePost,否则提示错误
  11. {
  12. try
  13. {
  14. // TODO: Add delete logic here
  15. var student = context.Students.Find(id);
  16. context.Students.Remove(student); // 移除操作
  17. // 变成Deleted状态
  18. context.SaveChanges(); // 持久化
  19. return RedirectToAction("Index");
  20. }
  21. catch
  22. {
  23. return View();
  24. }
  25. }
  26. 利用Ajax删除,先修改Controller代码:
  27. try
  28. {
  29. // TODO: Add delete logic here
  30. if (Request.IsAjaxRequest())
  31. {
  32. var student = context.Students.Find(id);
  33. context.Students.Remove(student);
  34. int k = context.SaveChanges();
  35. return Content(k.ToString());
  36. }
  37. else
  38. {
  39. return Content("-1"); // 返回内容为-1 表示删除失败
  40. }
  41. }
  42. catch
  43. {
  44. return Content("-1");
  45. }

修改查询的页面中删除的链接、
   把原来的 @Html.ActionLink("删除", "Delete", new { id=item.StudentID })
   换成

[csharp] view plain copy

  1. <a href="#" name="delete" [email protected]>删除</a>
  2. 用jquery删除
  3. <script type="text/javascript">
  4. $().ready(function () {
  5. $("[name=‘delete‘]").click(function () {
  6. if (confirm("确定删除信息?")) {
  7. var sid = $(this).attr("sid");
  8. var trContent = $(this).parent().parent();
  9. $.post("Student/Delete/", { id: sid }, function (data) {
  10. if (data == "-1") {
  11. alert("删除失败");
  12. }
  13. else {
  14. $(trContent).remove();
  15. alert("删除成功");
  16. }
  17. })
  18. }
  19. })
  20. })
  21. </script>

在学习的过程中主要记录下asp.NET MVC 的基本CRUD操作

时间: 2024-10-12 20:36:31

MVC Controller操作 CRUD的相关文章

mvc Controller类介绍

1.Controller类 i.Controller必须为公开类: ii.必须以Controller结尾: iii.继承Controller基类或实现IController接口的类: iv.类中必须包含数个返回值为ActionResult的公开方法,这些方法在MVC中称为Action: 2.Controller执行过程: 当Controller被MvcHandler选中之后,下一步就是通过ActionInvoker选取适当的Action来执行,在Controller中,每一个Action可以定义

spring mvc Controller与jquery Form表单提交代码demo

1.JSP表单 <% String basePath = request.getScheme() + "://" + request.getServerName() +":"+ request.getServerPort() + request.getContextPath() + "/"; %> <script language="javascript" type="text/javascript

ZendFramework-2.4 源代码 - 关于MVC - Controller层

// 1.控制器管理器 class ServiceManager implements ServiceLocatorInterface { public function __construct(ConfigInterface $config = null) { if ($config) { $config->configureServiceManager($this); } } } abstract class AbstractPluginManager extends ServiceMana

Posting JSON to Spring MVC Controller

Spring MVC can be setup to automatically bind incoming JSON string into a Java object. Firstly, ensure you have jackson-mapper-asl included on the classpath: <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-

Spring MVC Controller单例陷阱

Spring MVC Controller默认是单例的: 单例的原因有二: 1.为了性能. 2.不需要多例. 1.这个不用废话了,单例不用每次都new,当然快了. 2.不需要实例会让很多人迷惑,因为spring mvc官方也没明确说不可以多例. 我这里说不需要的原因是看开发者怎么用了,如果你给controller中定义很多的属性,那么单例肯定会出现竞争访问了. 因此,只要controller中不定义属性,那么单例完全是安全的.下面给个例子说明下: package com.lavasoft.dem

Spring MVC Controller与jquery ajax请求处理json

在用 spring mvc 写应用的时候发现jquery传递的[json数组对象]参数后台接收不到,多订单的处理,ajax请求: var cmd = {orders:[{"storeId":"0a1", "address":"西斗门路2号", "goods":[{"goodsId":"1"}, {"goodsId":"2"},

spring mvc controller中获取request head内容

spring mvc controller中获取request head内容: @RequestMapping("/{mlid}/{ptn}/{name}") public String print(@PathVariable Integer mlid, @PathVariable String ptn, @PathVariable String name, HttpSession session, Model model, @RequestHeader String referer,

[水煮 ASP.NET Web API2 方法论](1-4)从 MVC Controller 链接到 API Controller 以及反向链接

问题 想创建一个从 ASP.NET MVC controller 到 ASP.NET Web API controller 的直接链接,或者反向链接. 解决方案 可以使用 System.Web.Http.Routing.UrlHelp 的实例来创建一个指向 Controller的链接,来暴露ApiController(作为 Url 属性).着和在 RequestContext 上一样,会被附加到 HttpRequestMessage 实例.为了达到这个目的,我们需要调用链接方法或路由方法,然后传

转:【Spring MVC Controller单例陷阱】

http://lavasoft.blog.51cto.com/62575/1394669/ Spring MVC Controller默认是单例的: 单例的原因有二:1.为了性能.2.不需要多例. 1.这个不用废话了,单例不用每次都new,当然快了.2.不需要实例会让很多人迷惑,因为spring mvc官方也没明确说不可以多例. 我这里说不需要的原因是看开发者怎么用了,如果你给controller中定义很多的属性,那么单例肯定会出现竞争访问了. 因此,只要controller中不定义属性,那么单