asp.net MVC3 中Conroller中对于CRUD的基本操作

 

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

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



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

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



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

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

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


 // 执行编辑操作

 [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
 

 // 获取要删除的信息 默认页面为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 })
   换成
  

  <a href="#" name="delete" sid=@item.StudentID>删除</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操作
 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值