开发工具与关键技术:VS+MVC
作者:茅凯翔
撰写时间:2019年7月22日
有一种功能是可以改变状态的,就是说你想取消这个订单,把这个订单的状态从待支付改成取消订单。或者是申请改签、申请退票改成待审核也是一种改变状态。页面上我有四张表格,每一个表格都是一种状态的集合:
所以我要在控制器写出查询每个表格的方法。查询的方法我就不写出来了,应该都会吧,但是呢,要在查询前加上这句代码string linekse = “1”;,每个方法的数字不同,代表着状态不同。接下来我将呈上取消订单状态的代码:
public ActionResult Quxiao(string orkdoesl)
{
ReturnJson returnJson = new ReturnJson();
string lisennesed = "3";
string lisenkse = "1";
int lseinkdls = Convert.ToInt32(orkdoesl);
var OrderStatus = (from tbStatus in myModels.PW_Order
where tbStatus.OrderID == lseinkdls && tbStatus.OrderStatus == lisenkse
select tbStatus).Single();
OrderStatus.OrderStatus = lisennesed;
myModels.Entry(OrderStatus).State = System.Data.Entity.EntityState.Modified;
if (myModels.SaveChanges() > 0)
{
returnJson.State = true;
returnJson.Text = "取消成功!";
}
else
{
returnJson.State = false;
returnJson.Text = "取消失败喔!";
}
return Json(returnJson, JsonRequestBehavior.AllowGet);
}
最主要的是string lisennesed = “3”;和string lisenkse = “1”;一个是表格三(状态三),一个是表格一(状态一),这个就是把状态一更改成状态三。光靠一个控制器的方法是不行的,视图还要有执行的方法的代码,呈上视图代码:
//订单取消操作
function openUlinke(orderID) {//obj
layer.confirm(“你确定要取消此订单吗?”, { icon: 3, title: ‘提示’ }, function () {
$.getJSON("/UserCenter/UserManagementCenter/Quxiao", { orkdoesl: orderID }, function (data) {
layer.alert(data.Text);
if (data.State == true) {
//刷新表格一与表格三
tabAcademe1 = layuiTable.reload(‘tabAcademe1’);
tabAcademe3 = layuiTable.reload(‘tabAcademe3’);
}
})
})
}
获取到点击改变状态的那个按钮,后面的是那个那个表的ID,用layui提示插件,然后开始执行控制器那边方法,获取到控制器方法的名字,orkdoesl是控制器的参数(请看第一页代码),orderID是视图方法的参数(请看第二页的代码),输出对象为(data)。用简单的layui提示插件来提示成功。若不是后面还有判断,可以把layui提示插件写的更好看的,就跟方法开头一样的写法。提示后面跟着的判断是判断状态更改成功后就要刷新表格一和表格三。可以去试一下,有问题什么都可以说出来。