asp.net MVC最简单的增删查改!(详)

折腾了两天搞出来,但原理性的东西还不是很懂,废话不多说上图上代码

然后右键models,新建一个数据模型

注意我添加命名为lianxi

添加后如上

接下来在controllers添加控制器还有在Views中添加视图

注意控制器lianxi和视图的名字要一致,然后视图我是添加了3个分别是Index,insert,Modify,在控制器里分别有三个对应的函数

每当用URL访问视图时,他就调用了controllers对应的方法,例如

jiaEntities 就是建立模式时那个数据链接的名字

       jiaEntities db = new jiaEntities();

public ActionResult Index()

{

//查询

List<client> list = (from c in db.client select c).ToList();

ViewData["DataList"] = list;

return View();

}

Views里的Index里的代码如下

Beginform相当于我们平常写HTNML里的form

@Html.ActionLink就是超链接,然后第一个参数为链接的文字表示,第2个参数为调用的控制器方法,第3个为传值,当点击某个链接,就把这个链接对于的id赋值给Cid

ViewData["DataList"] 数据就是控制器中Index传过来的,进过foreach循环得到下面结果

下面是控制器中"修改"功能的代码

[HttpGet]

public ActionResult Modify()

{

int id = Convert.ToInt32(Request.QueryString["Cid"]);

client c1 = (from c in db.client where id == c.id select c).SingleOrDefault();

return View(c1);

}

[HttpPost]

public ActionResult Modify(client model)

{

client c = db.client.Where(c1 => c1.id == model.id).ToList().FirstOrDefault();

c.name = model.name.Trim();

db.SaveChanges();

db.Configuration.ValidateOnSaveEnabled = true;

return RedirectToAction("Index", "lianxi");

}

[httpGet]我的理解就是运行时默认调用的方法,直接从服务器获取

[httpPost]就是向服务器发送时调用的方法

所以当点击修改时就会执行第一个方法([httpGet])
点击第一项的修改之后的界面:

这个页面的代码如下

@model mvclianxi.Models.client

<!DOCTYPE html>

<html>

<head>

<meta name="viewport" content="width=device-width" />

<title>Modify</title>

</head>

<body>

@using (Html.BeginForm("Modify","lianxi",FormMethod.Post))

{

<table>

<tr>

<td>@Html.HiddenFor(model=>model.id)</td>

<td>@Html.TextBoxFor(model => model.name)</td>

<td><input type="submit" value="确认"/>@Html.ActionLink("<<<返回","Index","lianxi")</td>

</tr>

</table>

}

</body>

</html>

@Html.HiddenFor(model=>model.id)这句去掉的话会出错,具体原因不详(ˇ?ˇ)

model就是从第一个modify还是传过来的,刚开始我也晕了...

submit的按钮就是提交这个表单,提交到哪?就是提交到下面这个修改函数了,为什么会到这?因为这个 @using (Html.BeginForm("Modify","lianxi",FormMethod.Post))

@using (Html.BeginForm("Modify","lianxi",FormMethod.Post))

@using (Html.BeginForm("Modify","lianxi",FormMethod.Post))

public ActionResult Modify(client model)

{

client c = db.client.Where(c1 => c1.id == model.id).ToList().FirstOrDefault();

c.name = model.name.Trim();

db.SaveChanges();

db.Configuration.ValidateOnSaveEnabled = true;

return RedirectToAction("Index", "lianxi");

}

上面的函数就是用linq语句修改数据库...

接下来。。。就是添加的页面了,其实跟修改的原理都差不多,这里就不多说了直接粘代码
控制器里的:
   [HttpGet]
        public ActionResult insert()
        {
            return View();
        }

[HttpPost]
        public ActionResult insert(client model) //这个id是通过超链接带过来的
        {
            try
            {
                client c = new client();
                c.id = model.id;
                c.money = model.money;
                c.name = model.name ;
                db.client.Add(c);
                db.SaveChanges();
                return RedirectToAction("Index", "lianxi");
            }
            catch (Exception)
            {
                //指定对应跳转的视图Test下的Test.cshtml文件
                return RedirectToAction("Test", "Test");
                //return Content("添加失败" + ex.Message);
            }
        }

视图里的有两个地方
1.Index里的
    <td>@Html.ActionLink("添加", "insert")</td>

2.insert里的

@{
    ViewBag.Title = "insert";
}

@model  mvclianxi.Models.client
<h2>insert</h2>
<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
        @using (Html.BeginForm("Modify","lianxi",FormMethod.Post))
        {
        <table>
            <tr>
                <td>@Html.TextBoxFor(model=>model.id)</td>
                <td>@Html.TextBoxFor(model=>model.name)</td>
                <td>@Html.TextBoxFor(model=>model.money)</td>
                <td><input type="submit" value="添加"/>@Html.ActionLink("返回", "index", "lianxi")</td>
                </tr>
            </table>
        }
    </body>
    </html>

这里不小心用了他的母版页,也不影响吧,就没改了

删除:
视图中<td>@Html.ActionLink("删除", "Remove", new { Cid=a.id })</td>

控制器中
public ActionResult Remove() //这个id是通过超链接带过来的
        {
            try
            {
                //需要一个实体对象参数
                //db.Customers.Remove(new Customer() {CustomerNo = id });
                //1,创建要删除的对象
                int id = Convert.ToInt32(Request.QueryString["Cid"]);
                client c1 = (from c in db.client where c.id == id select c).SingleOrDefault();
                db.client.Remove(c1);
                db.SaveChanges();
                return RedirectToAction("Index", "lianxi");
            }
            catch (Exception)
            {
                //指定对应跳转的视图Test下的Test.cshtml文件
                return RedirectToAction("Test", "Test");
                //return Content("删除失败" + ex.Message);
            }
        }

到此结束。。。

asp.net MVC最简单的增删查改!(详),布布扣,bubuko.com

时间: 2024-07-30 22:26:54

asp.net MVC最简单的增删查改!(详)的相关文章

Spring-Ldap连接Ldap及简单的增删查改

了解了Ldap的基本概念之后就是Ldap的使用问题了,就像连接MySQL数据库,操作MySQL数据库中数据一样,我们怎么连接到Ldap呢?又是怎么操纵ldap中的数据呢? 我也是不断的在网上查找资料,最终选择使用Spring-ldap进行数据库的连接,因为我的项目使用SpringMVC+Spring开发,直接就利用Spring-ldap了,挺简单的. 步骤一:依赖(maven工程) <!-- 添加Spring 对LDAP的支持 --> <dependency> <groupI

nodejs连接mysql并进行简单的增删查改

最近在入门nodejs,正好学习到了如何使用nodejs进行数据库的连接,觉得比较重要,便写一下随笔,简单地记录一下 使用在安装好node之后,我们可以使用npm命令,在项目的根目录,安装nodejs中的mysql模块 npm install mysql 在连接数据库之前,要先引入nodejs连接处理mysql的模块 var mysql = require('mysql'); 类似php连接mysql的方式,编写连接代码 //使用nodejs处理mysql的模块,使用创建连接方法,创建与mysq

knockout+MVC+webapi+sqlserver完成增删查改

快过年了,公司的事情较少,想着开始学习点新东西.这段时间一个项目用到了mvc和webapi,然后一直对knockout比较感兴趣,就想着用这个框架做一个小实例.数据库采用的是sqlserver.话不多说,开始进行项目的步骤. 第一步:数据库的表创建.创建一个Employees员工表,具体字段见下图: 第二步:创建一个MVC项目,项目模板选择webapi. 第三步:在Model文件夹下新建一个ado.net实体数据模型,选择我们刚刚创建的employees的表,生成实体数据模型. 第四步:在con

mybatis实现简单的增删查改

接触一个新技术,首先去了解它的一些基本概念,这项技术用在什么方面的.这样学习起来,方向性也会更强一些.我对于mybatis的理解是,它是一个封装了JDBC的java框架.所能实现的功能是对数据库进行增删查改的功能. 首先,需要搭建一个demo,用于学习这个框架的使用方式.(1)在IDE上建立自己的工程目录,一个普通的java工程项目就好,我电脑本地的IDE是Myeclipse.(2)引入搭建框架需要的jar包,这个直接去网上搜索就好.(3)框架的核心实现都是基于配置的,引入jar包后,先配置my

Spring Boot集成ElasticSearch实现简单的增删查改接口

SpringBoot集成ElasticSearch pom.xml文件中,依赖的各jar包版本如下: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3.RELEASE</version> <relativePath/> &l

通过JDBC进行简单的增删查改

目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操作 (1)定义记录的类(可选) (2)连接的获取 (3)insert (4)update (5)select (6)delete 四.测试 五.代码分析 六.思考问题 前言:什么是JDBC 维基百科的简介: Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的

简单的增删查改

package com.pro.dao.impl; import java.sql.Date;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.Connection;import java.sql.Types;import java.util.Vector; import oracle.

Hibernate 的事物简单的增删查改

Hibernate 是一个优秀的ORM框架体现在: 1. 面向对象设计的软件内部运行过程可以理解成就是在不断创建各种新对象.建立对象之间的关系,调用对象的方法来改变各个对象的状态和对象消亡的过程,不管程序运行的过程和操作怎么样,本质上都是要得到一个结果,程序上一个时刻和下一个时刻的运行结果的差异就表现在内存中的对象状态发生了变化. 2.为了在关机和内存空间不够的状况下,保持程序的运行状态,需要将内存中的对象状态保存到持久化设备和从持久化设备中恢复出对象的状态,通常都是保存到关系数据库来保存大量对

java--easyUI+struts+JSP实现简单的增删查改

1.数据库工具类 package com.xiaoxiong.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class ConnUtil { //定义连接数据库参数 private static String drivers = "com.mysql.jdbc.Driver"; private static String url