如何从其他页面访问我的静态变量?入队/出队

时间:2019-05-14 04:02:00

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

我在KioskController中将即将到来的客户排队。

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)
    {
        MyQueue.todayQueue.Enqueue(queue);
        db.Queues.Add(queue);
        db.SaveChanges();
        return View(queue);
    }

    return View();
}

我想在我的TellerScreenController上使它出队,如何使用静态变量使它出队,

这是我的TellerScreenController:

    public ActionResult BtnNext()
    {
        var first = MyQueue.todayQueue.Dequeue();

        TempData["QueueItem"] = first;

        return View();
    }

这是我的队列课程:

public class MyQueue
{
    public int MyQueueId { get; set; }

    public string Name { get; set; }

    public string QueueNumber
    {
        get
        {
            return string.Format("{0}{1:000}", ServiceLetter ?? "?", QueueId);
        }
        set { }
    }

    public static Queue<MyQueue> todayQueue = new Queue<MyQueue>();

    public string ServiceLetter { get; set; }

    public virtual Service Service { get; set; }
}

1 个答案:

答案 0 :(得分:1)

您可以为TodayQueue创建一个类

public class QueueHelper{
     public static Queue<Queue> TodayQueue = new Queue<Queue>();
}

在Kios控制器中

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)
    {
        QueueHelper.TodayQueue.Enqueue(queue);
        db.Queues.Add(queue);
        db.SaveChanges();
        return View(queue);
    }

    return View();
}

出纳屏幕中

  public ActionResult BtnFinish()
    {
        var first = QueueHelper.TodayQueue.Dequeue();

        TempData["QueueItem"] = first;

        return RedirectToAction("Index");
    }

在索引cshtml视图中

@{
   var item = (MyQueue)TempData["QueueItem"];
}

<p>@item.Name</p>