[原创]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

相关文章
|
SQL JSON Java
springboot 如何编写增删改查后端接口,小白极速入门,附完整代码
本文为Spring Boot增删改查接口的小白入门教程,介绍了项目的构建、配置YML文件、代码编写(包括实体类、Mapper接口、Mapper.xml、Service和Controller)以及使用Postman进行接口测试的方法。同时提供了SQL代码和完整代码的下载链接。
springboot 如何编写增删改查后端接口,小白极速入门,附完整代码
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
309 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
前端开发 Java
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
文章介绍了如何使用SpringBoot创建简单的后端服务器来处理HTTP请求,包括建立连接、编写Controller处理请求,并返回响应给前端或网址。
346 0
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
|
安全 Java 数据库连接
后端框架的学习----mybatis框架(3、配置解析)
这篇文章详细介绍了MyBatis框架的核心配置文件解析,包括环境配置、属性配置、类型别名设置、映射器注册以及SqlSessionFactory和SqlSession的生命周期和作用域管理。
后端框架的学习----mybatis框架(3、配置解析)
|
前端开发 Java 数据库
springBoot:template engine&自定义一个mvc&后端给前端传数据&增删改查 (三)
本文介绍了如何自定义一个 MVC 框架,包括后端向前端传递数据、前后端代理配置、实现增删改查功能以及分页查询。详细展示了代码示例,从配置文件到控制器、服务层和数据访问层的实现,帮助开发者快速理解和应用。
172 0
|
Java 数据库连接 mybatis
后端框架的学习----mybatis框架(9、多对一处理和一对多处理)
这篇文章介绍了在MyBatis框架中如何处理多对一和一对多的关联查询,通过定义`<resultMap>`和使用`<association>`与`<collection>`元素来实现对象间的关联映射。
|
Java 数据库连接 测试技术
后端框架的学习----mybatis框架(8、lombok)
这篇文章介绍了如何在MyBatis框架中使用lombok库来简化Java实体类的编写,包括在IDEA中安装Lombok插件、在项目中导入lombok依赖以及在实体类上使用Lombok提供的注解。
|
算法 NoSQL 中间件
go语言后端开发学习(六) ——基于雪花算法生成用户ID
本文介绍了分布式ID生成中的Snowflake(雪花)算法。为解决用户ID安全性与唯一性问题,Snowflake算法生成的ID具备全局唯一性、递增性、高可用性和高性能性等特点。64位ID由符号位(固定为0)、41位时间戳、10位标识位(含数据中心与机器ID)及12位序列号组成。面对ID重复风险,可通过预分配、动态或统一分配标识位解决。Go语言实现示例展示了如何使用第三方包`sonyflake`生成ID,确保不同节点产生的ID始终唯一。
474 0
go语言后端开发学习(六) ——基于雪花算法生成用户ID
|
SQL Java 数据库连接
后端框架的学习----mybatis框架(5、分页)
这篇文章介绍了如何在MyBatis框架中实现分页功能,包括使用SQL的`limit`语句进行分页和利用MyBatis的`RowBounds`对象进行分页的方法。
|
SQL Java 数据库连接
后端框架的学习----mybatis框架(7、使用注解开发)
这篇文章讲述了如何使用MyBatis框架的注解方式进行开发,包括在接口上使用注解定义SQL语句,并通过动态代理实现对数据库的增删改查操作,同时强调了接口需要在核心配置文件中注册绑定。

热门文章

最新文章

下一篇
oss云网关配置