我创建了一个应用程序,此应用程序的功能是当PASSENGER来找我们使用我们的服务时,我们扫描了他们的登机牌(条形码)并将其信息保存在我们的数据库中,以获取有关使用我们服务的乘客人数的每月报告。 好的,所有这些工作都很好,乘客来了,我们经常扫描并保存他们的信息,但是当有5或6位乘客等乘客来访时,我们一起来拜访我们,这样在扫描和它停留在该页面上。 让我给你看一些代码。 我有一个带有一个字符串属性的视图模型。 这是扫描视图的ActionMethod
public ActionResult Scaning(Scanning Request)
{
if (!General.ValidateSession())
{
return RedirectToAction("Login", "User");
}
var Flights = FlightRepos.GetAllEmirates().Where(x=>x.isDelete==false);
ViewBag.FlightNoList = Flights.Select(x => new SelectListItem
{ Text = x.FlightNo.ToString(), Value = x.ID.ToString() });
//s ViewBag.Passcategory = categoryrepos.GetAll().Select(x => new SelectListItem { Text = x.Name.ToString(), Value = x.ID.ToString() });
ViewBag.Passcategory = categoryrepos.GetAll().Where(x=>x.ID!=4 && x.ID!=5).Select(x => new SelectListItem { Text = x.CategoryCode.ToString(), Value = x.ID.ToString() });
var b = Request.Data.Split(' ');
// int c = b.Length;
List<string> list = new List<string>(b);
// var list1 = new List<string>(b);
for (int i = 0; i < b.Length; i++)
{
if (b[i].Equals(""))
{
list.Remove(b[i]);
}
else
{
}
}
b = list.ToArray();
if (b.Length < 4)
{
return View("PleaseCheckManually");
}
var Model = new PassengerInfo();
if (b[4].Length < 12 || b[4].Length > 12)
{
return View("PleaseCheckManually");
}
Model.Name = b[0];
Model.SeatNo = b[4].Substring(4, 4);
Model.SequenceNo = b[4].Substring(8);
Model.FlightId = int.Parse(b[3]);
if (Flights.FirstOrDefault(x => (x.FlightNo) == b[3]) == null)
{
Request = null;
list = null;
ViewData["flights"] = b[3];
ViewData["scan"] = "0";
return View();
}
else
{
Model.FlightId = Flights.FirstOrDefault(x => (x.FlightNo) == b[3]).ID;
}
return View("CheckIn", Model);
}
我有一个扫描的视图模型,通过扫描,我通过扫描PASSENGER的登机牌来获取条形码字符串。
查看
@{
ViewBag.Title = "Scaning";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<section id="contact-us-section" class="contact-us-section pb-30 image-bg">
<div class="container">
<div class="section contact-us">
<div class="container">
<br />
<div class="slider-text-2 text-center pt-40">
<h2 class="font-w-8 font-30 ltr-s-1 pb-12 color-w" style="color:#e60053">Scan The Boarding Pass Of Passenger</h2>
<h4 class="color-w font-22"><a class="font-20 color-w" href="/Home/Index">Home</a></h4>
</div>
<br />
<div class="outer-box">
<!-- Contact Form Start -->
<div class="form-box clearfix">
<div align="center">
<img src="~/Contents/images/Barcod.gif" style="width:50% ; height:auto" />
</div>
<div class="col-md-6 contact-us">
<form action="" method="post" id="scan-form">
<div class="styled-input">
<input type="text" name="Data" placeholder="Name" required="" id="scanInput" hidden>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
输入名称“ Data”是我的视图模型的属性名称,并且是用户扫描Passenger的登机牌时的属性名称。 barcod字符串与此数据绑定,并通过使用Jquery提交了表单,然后我对上述方法进行了一些合乎逻辑的工作。
这是用于绑定条形码字符串并提交表格的脚本。
<script>
var code = '';
var scanStarted = false;
$(document).keypress(function (e) {
code += e.key;
if (!scanStarted) {
scanStarted = true;
setTimeout(function () {
$('#scanInput').val(code);
$('#scan-form').submit();
}, 700);
}
});
当用户在1分钟的间隔后来到时,这一切都很好,但是在扫描时,一组乘客来了,则应用程序滞后了。