[原创]Asp.net MVC 学习之路-003(增删改查,后端手工,前端生成)

简介: [原创]Asp.net MVC 学习之路-003(增删改查,后端手工,前端生成)

Asp.net Mvc实现增删改查


1, 创建数据库


可参考我写的EntityFramework实现过程:http://www.jianshu.com/nb/10166743

基于EF-ModelFirst思想在项目models文件夹下新建一个ADO.NET实体数据模型,完成实体和关系的建立,并生成数据库。


image.png


2,新建控制器

新建StudentController

一般index页面用来展示列表

using System.Web;
using System.Web.Mvc;
using MVCFirstDemo.Models;
namespace MVCFirstDemo.Controllers
{
    public class StudentController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }
    }
}


在index方法上右击鼠标选择添加视图

模板选择List,模型类选择Student,上下文选择你自己的上下文(你的上下文类名)。


image.png

自动生成:Views/Student/Index.cshtml



将查询结果作为集合通过ViewData.Model传到前端

#region 学生列表
        public ActionResult Index()
        {
            ViewData.Model = dbContext.StudentSet.AsEnumerable();//将查询结果作为集合通过ViewData.Model传到前端
            return View();
        }
#endregion


前端将通过foreach遍历集合中的每个对象进行展示,具体可查看自动生成的代码。~/Views/Student/Index.cshtml

当前页面(可先手动在数据库添加一些数据):


image.png


在StudentController中添加方法

#region Create
        public ActionResult Create()
        {
            return View();
        }


通过Create这个方法新建页面,方法同“查”。

当前页面:


image.png



加下来的问题是如何将前端的数据传到后台,并在后台将数据保存到数据库。

点击Create之后,系统会默认地去Controller中查找同名的Action进行处理(从哪来,回哪去),所以此时对Create方法进行重载,并且限制只有是HttpPost的时候进行响应。

[HttpPost]
        public ActionResult Create(Student student) //从前端获取对象
        {
            dbContext.StudentSet.Add(student);
            dbContext.SaveChanges();
            return RedirectToAction("index");//返回index页面,即list页面
        }



此时点击Edit

image.png



程序跳到另一个页面,你们的程序会报错,因为StudentController下面还没有Edit方法,但是此时我们关注的对象是URL地址,通过URL地址我们可以看出index页面是向Edit页面传递了一个id,所以我们的Edit页面可以通过这个id来获取这个id对应的在数据库中的值并进行展示。之后再进行更改。


image.png


在StudentController下面新建Edit方法

public ActionResult Edit(int id)
        {
            //ViewData.Model = dbContext.StudentSet.FirstOrDefault(u => u.Id == id);
            ViewData.Model = dbContext.StudentSet.Find(id);//将查询结果通过ViewData.Model传到前端
            return View();
        }


现在点击Edit之后已经能够在Edit页面对数据进行展示了,接下来的问题是如何将用户更改后的数据同步到数据库。


思想同Create,从哪来,到哪去。

[HttpPost]
        public ActionResult Edit(Student student)
        {
            dbContext.Entry(student).State = System.Data.Entity.EntityState.Modified;
            dbContext.SaveChanges();
            return RedirectToAction("Index");
            //连接到其他控制器下的方法  return RedirectToAction("Index","Home");
            //使用这个方法会报错  return Redirect("index");
        }

Delete  &  Details

#region Details
        public ActionResult Details(int id)
        {
            ViewData.Model = dbContext.StudentSet.Find(id);
            return View();
        }
        #endregion
        #region Delete
        public ActionResult Delete(int id)
        {
            ViewData.Model = dbContext.StudentSet.Find(id);
            return View();
        }
        [HttpPost]
        public ActionResult Delete(Student student)
        {
            dbContext.Entry(student).State = System.Data.Entity.EntityState.Deleted;
            dbContext.SaveChanges();
            return RedirectToAction("Index");
        }
        #endregion


至此Asp.net Mvc的增删改查已全部实现。

项目完整代码:链接:http://pan.baidu.com/s/1i431ra1 密码:5kjh

相关文章
|
1月前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
43 0
|
18天前
|
前端开发 开发者 C++
独家揭秘:前端大牛们如何高效学习新技术,保持竞争力!
【10月更文挑战第31天】前端技术飞速发展,如何高效学习新技术成为关键。本文通过对比普通开发者与大牛们的策略,揭示了高效学习的秘诀:明确目标、主动探索、系统资源、实践应用和持续学习。通过这些方法,大牛们能更好地掌握新技术,保持竞争力。示例代码展示了如何通过实践加深理解。
36 4
|
1月前
|
JavaScript 前端开发 Java
VUE学习四:前端模块化,ES6和ES5如何实现模块化
这篇文章介绍了前端模块化的概念,以及如何在ES6和ES5中实现模块化,包括ES6模块化的基本用法、默认导出与混合导出、重命名export和import,以及ES6之前如何通过函数闭包和CommonJS规范实现模块化。
88 0
VUE学习四:前端模块化,ES6和ES5如何实现模块化
|
1月前
|
前端开发 JavaScript 小程序
前端新机遇!为什么我建议学习鸿蒙?
【10月更文挑战第4天】前端新机遇!为什么我建议学习鸿蒙?
113 0
前端新机遇!为什么我建议学习鸿蒙?
|
1月前
|
前端开发 Java 数据库
springBoot:template engine&自定义一个mvc&后端给前端传数据&增删改查 (三)
本文介绍了如何自定义一个 MVC 框架,包括后端向前端传递数据、前后端代理配置、实现增删改查功能以及分页查询。详细展示了代码示例,从配置文件到控制器、服务层和数据访问层的实现,帮助开发者快速理解和应用。
|
2月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
43 7
|
3月前
|
前端开发 算法 网络协议
如何学习计算机基础知识,打好前端和网络安全的基础
如何学习计算机基础知识,打好前端和网络安全的基础
54 4
|
2月前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
63 0
|
4天前
|
Web App开发 JavaScript 前端开发
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念,包括事件驱动、单线程模型和模块系统;探讨其安装配置、核心模块使用、实战应用如搭建 Web 服务器、文件操作及实时通信;分析项目结构与开发流程,讨论其优势与挑战,并通过案例展示 Node.js 在实际项目中的应用,旨在帮助开发者更好地掌握这一强大工具。
19 1
|
14天前
|
存储 SQL API
探索后端开发:构建高效API与数据库交互
【10月更文挑战第36天】在数字化时代,后端开发是连接用户界面和数据存储的桥梁。本文深入探讨如何设计高效的API以及如何实现API与数据库之间的无缝交互,确保数据的一致性和高性能。我们将从基础概念出发,逐步深入到实战技巧,为读者提供一个清晰的后端开发路线图。
下一篇
无影云桌面