ASP.NET.MVC 关于事务的方法和运用

开发工具与关键技术:VS2015  MVC
作者:超级小贱贱
撰写时间:2019年5月27日	

事务是个好东西,要么一起成功,要么一个失败,下面我将说明一下事务的使用方法,拿个新增数据来做例子吧。
开局先声明一个新的对象ReturnJsonVo returnJson = new ReturnJsonVo();,然后紧接着重要部分来了,使用事务方法就必须从头开始,直接调用本身自带的事务类表using (var scope = new TransactionScope()),剩下的就是正常的新增流程:整体用try……catch捕捉错误,(这里的新增是新增用户类型/角色的那一块儿),先新增用户类型UserType,fmUserType.ToVoidNo = true;一般某些功能比如开关按钮等之类的都是默认先开着的(先启用),这里就默认启用该角色 ,然后在添加一个时间fmUserType.FoundTime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");最后加入新增关键句myModel.SYS_UserType.Add(fmUserType);myModel.SaveChanges();。接着在获得新增的UserTypeId,int userTypeId = fmUserType.UserTypeID;然后开始新增权限,并分割modularDetailIds里的字符串,用(,)来分割string[] strings = modularDetailIds.Split(',');中间的话就用foreach循环语句+if语句来判断筛选数据,然后添加多条数据的关键代码myModel.PW_Jurisdiction.AddRange(listJurisdiction);和myModel.SaveChanges();接下来关键地方又来了,处理完,添加完数据,紧接着就得提交事务scope.Complete();,然后在返回一系列的returnJson来提醒保存成功的提示和保存失败的提示,控制器这边就完成了。
在来到视图层,首先Html那里,包裹着的form表单在打开的时候记得请求的路径action“……………”要给到刚刚在控制器那边写的方法名称,然后在去到JS层那边首先声明一些变量

var tabModular;//表格
var layerIndex = 0;
var layer, layuiTable;//保存layui模块以便全局使用
var arrModularDetailIds = new Array();//记录用户勾选的模块明细id

在给一个加载事件,加载和初始化layui模块,搭建好表格,在写个注册表格中的点击事件,
接着就是自定义操作列,然后关键的地方来了,点击保存的按钮,还要确保数据保存到数据库里面,否则一切都是徒劳的。
首先找到保存按钮的点击事件并给它一个方法function submitForm(),然后按照数字顺序的排序函数 array[] 数字排序,从小到大arrModularDetailIds.sort(function (a, b) { return a - b; });接着获取到上面查询input框里面的ID并给方法在这里插入图片描述

var userType = $("#UserType").val();-----》名称
var describe = $("#Describe").val();------》描述

然后就是给这两个新增框一个if……else判断

if (userType != null && describe != null && userType != "" && describe != ""){

打开加载层layerIndex = layer.load();
再用jquery.form.min.js里面的ajax方法来提交表单

$("#formUserType").ajaxSubmit(function (message){

新增完一定要给个功能ayer.close(layerIndex);//关闭加载层

layer.msg(message.Text, { icon: 0, skin: "layui-layer-molv" });
         if (message.State == true) {
             closeThis(message.Text);
         }
		else{
	layer.msg("请填写完整", { icon: 0, skin: "layui-layer-molv" });
}

保存按钮就完成了。
然后就是关闭的按钮,直接获取到关闭按钮的点击事件,给个方法,在调用父页面的方法即可

function closeThis(msg) {
            if (parent != null && parent != undefined) {
                //调用父页面的方法
                parent.closeModal(msg);
            }
        }

个人理解,事务:要么一起成功,要么一起失败,OK!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值