在学习MVC过程中,最基础的就是MVC中的增删查改。而新增修改的写法大致相同,不同的是修改多了一步数据的回填,新增/修改一般都是弹出一个新增/修改的模态框,所以新增/修改的基本步骤为:
(1)先写一个弹出新增/修改模态框的方法,在方法里面写应执行的代码,比如重置表单,打开新增/修改的模态框,注意:修改模态框还需要回填数据,使用“
.
p
o
s
t
(
)
”
来
回
填
数
据
,
重
置
表
单
的
目
的
是
为
了
防
止
上
次
填
写
的
数
据
遗
留
到
模
态
框
中
。
写
好
方
法
后
就
到
相
应
的
按
钮
写
个
点
击
事
件
来
调
用
这
个
方
法
。
(
2
)
再
写
一
个
保
存
新
增
/
修
改
的
方
法
,
方
法
里
面
第
一
步
是
先
获
取
表
单
值
,
然
后
判
断
获
取
的
表
单
值
是
否
填
写
数
据
,
没
填
写
完
整
就
弹
出
一
个
提
示
框
提
醒
用
户
“
请
填
写
完
整
”
,
填
写
完
整
后
就
写
一
个
p
o
s
t
请
求
,
.post()”来回填数据,重置表单的目的是为了防止上次填写的数据遗留到模态框中。写好方法后就到相应的按钮写个点击事件来调用这个方法。 (2)再写一个保存新增/修改的方法,方法里面第一步是先获取表单值,然后判断获取的表单值是否填写数据,没填写完整就弹出一个提示框提醒用户“请填写完整”,填写完整后就写一个post请求,
.post()”来回填数据,重置表单的目的是为了防止上次填写的数据遗留到模态框中。写好方法后就到相应的按钮写个点击事件来调用这个方法。(2)再写一个保存新增/修改的方法,方法里面第一步是先获取表单值,然后判断获取的表单值是否填写数据,没填写完整就弹出一个提示框提醒用户“请填写完整”,填写完整后就写一个post请求,.post():意思是通过远程 HTTP POST 请求载入信息。js部分代码具体格式如下:
修改的js部分写好后就到控制器写新增/修改的方法。新增数据在控制器中的最核心的代码只有两句,其他的都是各种判断,比如判断是否和以前的数据相同,相同就提醒用户。核心代码就如:“myModel.XX_XX.Add(sysAcademe); if(myModel.SaveChanges()>0){}else{}”,可以看出,新增数据是利用Add()方法新增,然后就用“if(){}else{}”语句判断是否新增成功。
而修改数据跟新增数据也差不多,也是两句核心代码,然后也是各种判断,比如判断修改的数据是否与以前相同,相同就提醒用户。核心代码就如:“myModel.Entry(XXXXXX).State=System.Data.Entity. EntityState. Modified; if(myModel.SaveChanges()>0){}else{}”,可以看出,修改好数据后就添加到数据库,然后就用“if(){}else{}”语句判断是否修改成功。
查询则是嵌套在新增/修改/删除中,查询出对应要新增/修改/删除的数据。
删除数据也比较简单,写一个删除数据的方法,在方法里面第一步先提醒用户是否删除选中的数据,再写一个post请求,js部分代码具体格式如下:
删除的js部分写好后就到控制器写删除的方法。删除数据在控制器中的最核心的代码也只有两句,其他的都是各种判断,比如判断删除的数据是否还与数据库中的其他表有联系,有就不能删除,否则删除后数据库就会产生很多的垃圾数据。这是不允许的,因为我们要确保删除的数据不能对数据库产生影响。删除数据的核心代码就如:”myModel.S_Academe.Remove(tabAcademe); if(myModel.SaveChanges()>0){}else{}”,可以看出,删除数据是利用Remove()方法来进行数据的删除,然后就用“if(){}else{}”语句判断数据是否删除成功。