前段时间做的一个模拟项目:飞机订票系统,电子客票打印是电子票证里的一个功能,下面就说说如何在vs中实现。
在解决方案里找到电子票证控制器文件夹添加一个控制器,取名:TicketPrintController
引入,可以创建控制器的时候自己引入,也可以报错的时候引入。
复写父类的该方法。执行控制器中的方法之前先执行该方法。从而实现过滤的功能。
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
}
验证用户登录,没有登录就重定向,不会执行后续的方法,而是直接跳转到登录页面。
if (Session[“userID”] == null)
{
filterContext.Result = Redirect(@Url.Content("~/Main/Login"));
}
else
{
userID = (int)Session[“userID”];
}
主页面
添加视图,给电子客票打印页面写样式,写前面的页面时样式我已经写了,一个项目页面的样式都大同小异,我直接复制前面写好的样式就好了。
一些用得到的CSS、JS放进来。
写script,不懂可以看看注释。
打印电子客票
public ActionResult TicketPrint(int ETicketID)
{
ViewBag.ETicketID = ETicketID;
return View();
}
跟主页面是一样的,先添加视图,写样式,放入用得到的CSS、JS,再写script,太多了,就不全放出来了,这段是主要的。
根据电子客票ID查询电子客票
这步用到了try…catch语句,try大括号里面是一个大的查询语句,查询:电子客票ID、PNR、航班号、航班日期、起飞日期……
全部数据查询&多数据查询
全部数据查询也是一个大的查询语句,使用orderby按学生ID进行descending(倒叙)排序,要进行分页一定要用orderby排序。
orderby tbETicket.ETicketID descending
Skip表示从第几条数据开始,也就是说在这之前有多少条数据。Take的意思是显示多少条数据,也就相当于我们常用的pagesize,举例:Skip(1).Take(4)
上面这段语句的意思是从第二条数据开始显示4条。
代码就是这样,如同拼积木一样,一块一块拼接而成的;然而拼好的积木也有美丑之分,代码亦是如此,我写的代码显然还不够好,但我也会继续努力的。