jQuery 基础使用
var query = from tabTicket in myModel.S_Ticket
join tabUser in myModel.S_User on tabTicket.userID equals tabUser.userIDjoin tabUserGroup in myModel.S_UserGroup on tabUser.userGroupID equals tabUserGroup.userGroupID
orderby tabTicket.ticketID
where userIDs.Contains(tabUser.userID)
select new TicketVo()
{
ticketID = tabTicket.ticketID,
ticketDate = tabTicket.ticketDate,
startTicketNo = tabTicket.startTicketNo,
endTicketNo = tabTicket.endTicketNo,
currentTicketNo = tabTicket.currentTicketNo,
userID = tabTicket.userID,
isEnable = tabTicket.isEnable,
//
jobNumber = tabUser.jobNumber,
userName = tabUser.userName,
userGroupNumber = tabUserGroup.userGroupNumber
};
通过查询多个表并且查询一个数据里面是否包含的另一个数据,将包含的数据查询出来,new一个类将数据存放里面,这样就查询出需要的数据。
获取总行数 :
int totalRows = query.Count();创建个对象接收总行数
分页查询
List<TicketVo> listData = query
.Skip(layuiTablePage.GetStartIndex())
.Take(layuiTablePage.limit)
.ToList();
准备layui table所需的数据
LayuiTableData<TicketVo> layuiTableData = new LayuiTableData<TicketVo>()
{
count = totalRows,总数据
data = listData 当页数据
};
return Json(layuiTableData, JsonRequestBehavior.AllowGet);
将数据进行分页,准备返回页面的数据,然后将数据返回页面
public ActionResult SwitchTitcketEnable(int ticketID,bool isEnable)
页面数据返回控制器进行操作
string startTicketNo = "E781-"+dbTicket.startTicketNo;
有些数据是统一格式我们可以根据需要进行添加,通过””进行拼接
public ActionResult Index()
{
清除本页面所使用的session数据
Session.Remove("nextStartTieckNo");
Session.Remove("groupUserIdList");
return View();
}
Session.Remove可以将页面残留session的数据进行彻底清除
try
{
( 进行数据操作)
}
catch (Exception)
{
Console.Write(e);
rtMsg.Text = "数据异常";
}
将数据写入里面可以查询出报出的异常,让你更好的找到问题所在。
ViewBag.PNRInfo = pnrInfor;
将控制器数据返回页面,前面页面的数据的名称,后面控制器这边的数据名称
using (TransactionScope scope = new TransactionScope()){
提交事务
scope.Complete();
}
进行多表操作时防止单表完成操作或者有一表没完成操作而出现的问题,如果没有全部完成操作就全部返回原样,如果数据全部完成操作提交数据上去,进行多表数据增查改删必须要使用了
{
if (dbFlight.flightDate == flightInfor.flightDate)
{
不允许选择同一天的同一个航班
if (dbFlight.flightCode == flightInfor.flightCode)
{
rtMsg.Text = "与当前PNR中的航班重复,请重新选择!";
return Json(rtMsg, JsonRequestBehavior.AllowGet);
}
同一天的航班,如果到达时间<更改航班的起飞时间,判断时间间隔
if (dbFlight.arrivalTime < flightInfor.departureTime)
{
(到达时间+60分钟)>更改航班的出发时间
if ((dbFlight.arrivalTime.Value.TotalMinutes + 60) > flightInfor.departureTime.Value.TotalMinutes)
{
rtMsg.Text = "出发时间与当前PNR中前一段航班间隔时间太短,请重新选择!";
return Json(rtMsg, JsonRequestBehavior.AllowGet);
}
}
同一天的航班,如果起飞时间>更改航班的到达时间,判断时间间隔
if (flightInfor.arrivalTime < dbFlight.departureTime)
{
(更改航班到达时间+60)> 起飞时间
if ((flightInfor.arrivalTime.Value.TotalMinutes + 60) > dbFlight.departureTime.Value.TotalMinutes)
{
rtMsg.Text = "到达时间与当前PNR中下一段航班间隔时间太短,请重新选择!";
return Json(rtMsg, JsonRequestBehavior.AllowGet);
}
}
同一天的航班,更改的航班是否与原有航班时间重叠if ((flightInfor.departureTime >= dbFlight.departureTime && flightInfor.departureTime <= dbFlight.arrivalTime) || (flightInfor.arrivalTime >= dbFlight.departureTime && flightInfor.arrivalTime <= dbFlight.arrivalTime) ||
(flightInfor.departureTime <= dbFlight.departureTime && flightInfor.arrivalTime >= dbFlight.arrivalTime))
{
rtMsg.Text = "选择的航班与原有航班时间冲突,请重新选择!";
return Json(rtMsg, JsonRequestBehavior.AllowGet);
}
有时候页面做的一些数据验证是不安全的,极有可能被直接通过验证所以我们往往需要在控制器进行一些页面的数据判断,这样更加安全可靠,
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
try
{
loginUserID = Convert.ToInt32(Session["userID"].ToString());
}
catch (Exception e)
{
Console.WriteLine(e);
filterContext.Result = Redirect(Url.Content("~/Main/Login"));//重定向到登录
}
}
在进入页面时进行的判断,防止一些熟悉代码的人直接通过连接进入页面进行操作,这段代码可以找出你是否登入账户,防止未登入的人进行页面操作