开发工具与关键技术:VS
作者: 李伙
撰写时间: 2019年3月31日
在学习MVC过程中,最基础的就是MVC中的增删查改。而新增修改的写法大致相同,不同的是修改多了一步数据的回填,新增/修改一般都是弹出一个新增/修改的模态框,所以新增/修改的基本步骤为:
(1)先写一个弹出新增/修改模态框的方法,在方法里面写应执行的代码,比如重置表单,打开新增/修改的模态框,注意:修改模态框还需要回填数据,使用“$.post()”来回填数据,重置表单的目的是为了防止上次填写的数据遗留到模态框中。写好方法后就到相应的按钮写个点击事件来调用这个方法。
(2)再写一个保存新增/修改的方法,方法里面第一步是先获取表单值,然后判断获取的表单值是否填写数据,没填写完整就弹出一个提示框提醒用户“请填写完整”,填写完整后就写一个post请求,$.post():意思是通过远程 HTTP POST 请求载入信息。js部分代码具体格式如下:
//弹出新增/修改模态框
function 自定义方法名称(){
//重置表单
$("from表单的id")[0].reset();
//打开模态框
$("新增/修改模态框的id").model("show");
//修改时需要回填数据
$.post("/区域名称/控制器名称/控制器方法名称",
{自定义名称(传入控制器的参数):自定义名称1,………},
function(){………});
}
//保存新增/修改
function 自定义方法名称(){
//获取需要新增的表单值
var 自定义名称1=$("id").val();
var 自定义名称2=$("id").val();
…………
//判断值
if(strValIsNotNull(自定义名称1) && strValIsNotNull(自定义名称2)&&……){
$.post("/区域名称/控制器名称/控制器方法名称",
{自定义名称(传入控制器的参数):自定义名称1,………},
function(){………});
}
else{
alert('请填写完整');
}
}
新增/修改的js部分写好后就到控制器写新增/修改的方法。新增数据在控制器中的最核心的代码只有两句,其他的都是各种判断,比如判断是否和以前的数据相同,相同就提醒用户。核心代码就如:“myModel.SYS_Academe.Add(sysAcademe); if(myModel.SaveChanges()>0){}else{}”,可以看出,新增数据是利用Add()方法新增,然后就用“if(){}else{}”语句判断是否新增成功。
而修改数据跟新增数据也差不多,也是两句核心代码,然后也是各种判断,比如判断修改的数据是否与以前相同,相同就提醒用户。核心代码就如:“myModel.Entry(sysAcademe).State=System.Data.Entity. EntityState. Modified; if(myModel.SaveChanges()>0){}else{}”,可以看出,修改好数据后就添加到数据库,然后就用“if(){}else{}”语句判断是否修改成功。
查询则是嵌套在新增/修改/删除中,查询出对应要新增/修改/删除的数据。
删除数据也比较简单,写一个删除数据的方法,在方法里面第一步先提醒用户是否删除选中的数据,再写一个post请求,js部分代码具体格式如下:
//删除
function 自定义方法名称(){
layer.confirm('提示用户是否删除某信息',
{icon:3,title:'提示'},
function(){
//发送删除请求
$.post("/区域名称/控制器名称/控制器方法名称",
{自定义名称(传入控制器的参数):自定义名称1,………},
function(){………});
});
}
删除的js部分写好后就到控制器写删除的方法。删除数据在控制器中的最核心的代码也只有两句,其他的都是各种判断,比如判断删除的数据是否还与数据库中的其他表有联系,有就不能删除,否则删除后数据库就会产生很多的垃圾数据。这是不允许的,因为我们要确保删除的数据不能对数据库产生影响。删除数据的核心代码就如:“myModel.SYS_Academe.Remove(sysAcademe); if(myModel.SaveChanges()>0){}else{}”,可以看出,删除数据是利用Remove()方法来进行数据的删除,然后就用“if(){}else{}”语句判断数据是否删除成功。