解释单表的新增代码

开发工具与关键技术:VS, ASP.NET MVC
作者:谭威
撰写时间:2019年5月5日
在讲解新增代码之前,我得先说明一下我这里新增和修改的模态框是共用的,所以这里我为了区分它们的标题,在它们的标题的h5标签中设置了一个ID,好让我在打开模态框时就能把它的标题名字进行更改;但是这里也有个不方便的地方,那就是因为共用一个模态框的缘故,保存按钮也就是同一个,在这里设置点击函数后,那么新增和修改都会跳到同一个函数,为了避免这种情况,我引用了jquery.form.min.js的插件,这个插件里面有个ajaxSubmit的方法,这个方法在函数体内不需要直接设置路径,它是用action来设置请求路径的,这样我在打开模态框时就设置好对应的action,就避免了新增和修改都会跳到同一个函数。下面我将会给到有关单表新增的所有代码:
解释单表的新增代码

打开新增模态框我就不详讲了,上图中也有注释,在上面的一段话中我也说了action的作用,还有为什么要设置标题的原因,这里需要讲的是弹出模态框这一句中大刮号的意思,这句的意思是弹出模态框后,按esc和点击空白处不退出模态框。
解释单表的新增代码

上图就是我们新增完数据后,当我们点击保存按钮后,进入函数,首先我声明个变量(subject)来接收到我新增进来的数据,接着我再判断subject不能等于未定义和不能等于空和不能等于字符串,若判断不通过,则输出请填写完整,返回到页面;若判断通过,则打开加载层(这里打开加载层的意思是防止用户网络延迟,以为未提交,再次点击保存按钮),进入到下一个函数并发送请求;当请求返回时,关闭加载层,再判断返回的请求是否为true,若为false,则关闭模态框并输出对应的文本信息(这里对应文本信息太多,接下来我在控制器的方法中会讲到文本信息的,这里我就不一一填写了),返回到页面;若为true,则刷新表格并关闭模态框,再输出对应的文本信息(也就是新增成功),返回到页面。

因为下图的代码图太长,我只能把解释放到该图的前面(请见谅,我是写在Word文档中);在我讲解控制器新增代码之前,我得先声明我自定义的ReturnJsonVo这个类,ReturnJsonVo这个类中有State(状态)、Code(状态码)、Text(文本)、Object(附加数据)这四个字段;

在上面我说到会发送请求到控制器中,这时我在小刮号中实例化了SYS_Subject这张表(sysSubject,这个是实例化的名字),然后我实例化ReturnJsonVo的一个对象,再给它的状态设置为false,其实也可以不设置的,因为它是bool类型的,其默认值就是false;接着我用try捕获异常,当捕获到异常时,它将会跳到catch, ReturnJsonVo的状态为false(这里并没有写ReturnJsonVo.State=false,其实是因为之前我在实例化这个类时,同时不是也设置这个状态吗,所以每次要声明状态时,如果我没有改,它就默认这一句,所以就不用打这么多重复的代码),ReturnJsonVo的文本为参数异常,就返回到视图;然后我用我声明的sysSubject的Subject(科目名称)来接收到sysSubject的subject(科目名称)的去空格的值,在判断sysSubject的Subject不能等于未定义和不能等于空和不能等于字符串,若判断不通过,则ReturnJsonVo的状态为false,ReturnJsonVo的文本为请填写完整,返回到视图;若判断通过,然后我再声明一个int类型的dbSubject来接收一个数值,后面大半段的意思是我实例化SYS_Subject这张表,查询出我要新增这条数据的科目类型名称跟我数据库中的所有科目名称比较后重复多少条,这个数值就是重复的多少条数据;再判断dbSubject是否等于零,若不等于,则ReturnJsonVo的状态为false,ReturnJsonVo的文本为已经存在相同的科目类型,返回到视图;若等于零,接着再判断数据库中的变化是否大于零,若不大于零,则ReturnJsonVo的状态为false,ReturnJsonVo的文本为新增失败,返回到视图;若大于零,则ReturnJsonVo的状态为false,ReturnJsonVo的文本为新增成功,返回到视图;
解释单表的新增代码