如何将我从另一个页面入队的对象出队

时间:2019-05-10 06:55:47

标签: c# asp.net asp.net-mvc

我现在正在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");
    }

注释:
客户页面与代理页面不同,我需要使排队的数据出队并呈现到代理页面。

1 个答案:

答案 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");
}