我现在正在ASP.NET MVC中创建队列管理系统
第一种情况:
客户将转到笔记本电脑,输入他们的姓名,然后确认接收队列编号,然后数据将保存到数据库中。
我可以使用此代码来吸引新来的客户。
public static Queue<Queue> todayQueue = new Queue<Queue>();
public ActionResult SetQueueInfo([Bind(Include = "QueueId,Name,QueueNumber,ServiceId,ServiceName,ServiceLetter")] Queue queue/*, int? id,string Name, string QueueNumber, string ServiceLetter, int ServiceId*/, int? id)
{
if (ModelState.IsValid)
{
todayQueue.Enqueue(queue);
db.Queues.Add(queue);
db.SaveChanges();
return View(queue);
}
return View();
}
第二种情况:
代理将单击“下一步”按钮,然后我将对在第一种情况下排队的数据进行脱队。
单击“下一步”按钮时,需要在视图上呈现出队数据。
有人可以告诉我吗?我想念什么?
public ActionResult BtnNext()
{
var first = todayQueue.Dequeue();
return RedirectToAction("Index");
}
注释:
客户页面与代理页面不同,我需要使排队的数据出队并呈现到代理页面。
答案 0 :(得分:0)
您可以将队列存储在应用程序级别,并从该队列入队和出队数据
因此,您的代码应如下所示:
public ActionResult SetQueueInfo(MyData data)
{
Queue<MyData> queue = null;
if (Application["Queue"] != null)
{
queue = Application["Queue"] as Queue<MyData>;
}
else
{
queue = new Queue<MyData>();
}
queue.Enqueue(data);
Application["Queue"] = queue;
//other task you wanna do
}
public ActionResult BtnNext()
{
var queue = Application["Queue"] as Queue<MyData>
if(queue != null)
{
var first = queue.Dequeue();
}
return RedirectToAction("Index");
}